首先分析原因:
默认情况下,nginx不支持thinkphp5中path_info路径的设置
解决办法
首先,看一下php.ini中的:
cgi.fix_pathinfo=0
那就将其修改为
cgi.fix_pathinfo=1
然后,修改nginx.conf 文件
改为:
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
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 PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
或者:
location ~ \.php { #去掉后面的$
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句
fastcgi_param PATH_INFO $fastcgi_path_info; #还有这一句
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /site/www.xxr.so/$fastcgi_script_name;
# 这个是在配置nginx+php整合的时候就改好的$前面的是网站的主目录
include fastcgi_params;
}
(注意中文空格)
重启环境