配置Nginx支持pathinfo模式

Posted dream98

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Nginx支持pathinfo模式相关的知识,希望对你有一定的参考价值。

nginx服务器默认不支持pathinfo, 在需要pathinfo支持的程序中(如thinkphp),则无法支持”/index.php/Home/Index/index”这种网址.
网上流传的解决办法很多,这里提供一种比较简洁的写法(只需要改动2行代码)
典型配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_params;
}

修改第6行,支持pathinfo
location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量
include fastcgi_params;
}

以上是关于配置Nginx支持pathinfo模式的主要内容,如果未能解决你的问题,请参考以下文章

nginx 配置https(可支持thinkphp的pathinfo模式)

配置nginx1.8支持thinkPHP3.2 pathinfo模式

nginx完美支持TP5的pathinfo路由模式

nginx下TP5 隐藏入口文件+支持pathinfo模式+配置多项目根目录

修改Nginx解决ThinkPHP不支持PathInfo模式

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式