Nginx中PATHINFO模式之fastcgi_index参数的影响

在使用Nginx中PATHINFO模式,fastcgi_index会影响到PATHINFO的值。

举例

我们使用伪静态先配置PHP入口文件

if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php/$1 last;
}

当我们访问http://127.0.0.1/test/ 实际进入的地址是http://127.0.0.1/index.php/test/

通过PHP代码取到PATHINFO的值看一下

<?php
var_dump($_SERVER["PATH_INFO"]);
//这里会输出/test/index.php

按理说我们应该要得到的值是/test/

这个后面的index.php就是Nginx中fastcgi_index给我们加进去的

我在Apcahe的环境下测试没有这个问题

fastcgi_index官方说明

如果URI以斜杠结束,将追加到URI并存储在变量fastcgi_script_name中的文件名。

这里官方并没有说明会影响到PATHINFO的值。

建议

我个人建议这个参数直接禁用或注释掉,因为fastcgi_index其实是没有用的,可以放心删除或注释,在前面的index(默认文档)已经把“/”结束这种情况排除了。

宝塔面板的文件修改路径:/www/server/nginx/conf/enable-php-PHP版本号.conf

直接注释掉即可。

THE END