由于在默认的Nginx配置环境中是没有支持pathinfo模式的,所以是无法支持/index.php/Home/Index/index这样的路径模式的,我们需要设置启动才可以。
一、普通LNMP环境下
1、将php.ini中的cgi.fix_pathinfo选项的值设为1;
2、location ~ .*\.php
{
#其他原有配置
.......................................
#pathinfo的配置
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
此处需注意~.*\.php有些原有配置为~.*\.php$,需要将$结尾限制去掉,否则会对启用重写有影响。
3、根据需要用重写去掉路径上的index.php,如原路径/index.php/Home/Index/index变为/Home/Index/index
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
4、重启Nginx,大功告成
二、AMH环境下
1、直接使用AMpathinfo插件开启,如有重写需要,把location ~ .*\.php$ 的$符号去掉
2、将环境目录下的etc/amh-php.ini中的cgi.fix_pathinfo选项的值设为1,其他步骤同上。