原来是在 Linux 下使用的,近期在 Windows 中安装了 BT 面板,随之的问题也来了。
在站点伪静态中,像 ThinkPHP 的,
location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }
像 wordprss 的:
location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } rewrite /wp-admin$ $scheme://$host$uri/ permanent;
都是,只要选择就可以使用。
但现在却不行,访问直接报 404。
解决方法:在 BT 面板Nginx 配置目录,如 D:\BtSoft\nginx\conf\php,编辑相应版本的 conf 文件。
如,D:\BtSoft\nginx\conf\php\74.conf
打开后,注释掉 try_files
location ~ \.php(.*)$ { # try_files $uri =404; fastcgi_pass 127.0.0.1:20074; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
重新启动 PHP-FPM。