原理:
任意创建一个 in.php 文件:
<?php
echo '<pre>';
var_dump($_SERVER);
?>
localhost/in.php/a/b/c apache 用此 url 访问,会打印 pathinfo 模式信息。而 nginx 默认访问是没有的。所以 tp 框架在 nginx 上运行时,不开启 pathinfo 模式会报错。
配置方式:
location ~ \.php${ #配置前
root html;
fastphp_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_params;
}
location ~ \.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;
include fastcgi_params;
}
这样 nginx 就支持 pathinfo 模式了。nginx 访问 in.php 打印的 server 也会有 pathinfo 参数。
include fastcgi_params;
}
location ~ \.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;
include fastcgi_params;
}
这样 nginx 就支持 pathinfo 模式了。nginx 访问 in.php 打印的 server 也会有 pathinfo 参数。