分类

最新评论

Kevin's Blog
.
不管你来或不来,我都在这里--- my country of freedom.
2024
如果人生是值得的,那就值得记录…

十一月 初九 甲辰【龙】年
丙子月 丁未日 
Mon,09 Dec 2024 16:05:40
自由国度 平凡的足迹
Mon, 15 Nov 2021 5

nginx重写问题。请求目录重写时本地正常,但宝塔上有一点问题,所有要重写的.php文件直接解析404了,失效,其它文件都可以正常重写,

最怕出这种事情,这类代码有点难看,一般都是看得是懂非懂。折腾了很久。有点心得记录一下。

1:确定书写无误(测试其它类型文件或url正常能被重写);

2:如果某些特别情况无效,那一定是以被定义过,或是再次定义过,无其它可能。

3:后面代码部分没有找到有冲突的重写,可能之被单独定义了,图中该行代码,找这个文件enable-php-*.conf

一般位于/www/server/nginx/conf


4:enable-php-72.conf 文件内容如下,果然该中.php被单独搞过

location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass  unix:/tmp/php-cgi-72.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}


5:重点是引入的pathinfo.conf文件(同一目录位置),打开pathinfo.conf文件

if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
#======下面增加代码,把文件重写定义进来,该位置的php文件,也全都用index.php处理=======
if ($fastcgi_script_name ~ "^(\/static\/)(.+?\.php)") {
set $rename index.php;
set $real_script_name $1$rename;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;

保存后就见效了。

共有0条留言

154368