网上的其它配置方法或多或少的有一些问题,其实0.7.31 版本以上的 Nginx 新增了fastcgi_split_path_info 这个指令,也就是这个配置方法只适用于0.7.31 版本以上。
配置如下:
location ~ \.php
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi.conf;
}
注意是include fastcgi.conf 而不是include fastcgi_params,fastcgi.conf 比fastcgi_params多了一个SCRIPT_FILENAME参数的设定。
关于fastcgi_split_path_info的信息可以参考nginx官网:http://wiki.nginx.org/HttpFastcgiModule#fastcgi_split_path_info