主要是因为服务器的环境不支持path_info引起的
详细原因分析
[https://blog.csdn.net/hanzengyi/article/details/53483171](https://blog.csdn.net/hanzengyi/article/details/53483171)
频道打不开,后台打不开,一般原因是服务器没有配置好,主要出现在IIS与 nginx 服务器, 而apache默认是不存在这个问题的.
针对 windows 环境下面的 nginx 环境,我们给出宝塔环境的配置方法,大家可以对应的参数修改
其中 fastcgi_pass 127.0.0.1:4556; 是widnows的特色,linux是不一样的.注意查看原来的.
比如 宝塔环境 默认一般是如下的配置
~~~
#START-PHP
location ~ \.php$ {
root D:/wwwroot/域名路径;
fastcgi_pass 127.0.0.1:4556;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#END-PHP
~~~
你把他换成如下的即可
~~~
#START-PHP
location ~ .+\.php($|/) {
fastcgi_pass 127.0.0.1:4556;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#END-PHP
~~~
注意其中的端口号 4556 要换成你自己的.
如果要隐藏index.php文件的话,还需要加多一段代码,如下
~~~
#START-PHP
location / {
index index.php index.html index.htm;
if (-e $request_filename) {
break;
}
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .+\.php($|/) {
fastcgi_pass 127.0.0.1:4556;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#END-PHP
~~~
如下图
[![](https://box.kancloud.cn/831b58749c3a0bed015d5ca14ad50b91_1876x836.jpg)](https://box.kancloud.cn/831b58749c3a0bed015d5ca14ad50b91_1876x836.jpg)