目的:让php能够解析类似这样的url http://www.xxx.com/index.php/abc/def
在默认情况下我们打开这个url时会出现无法找到该页。这就需要在nginx做path_info设置了。
原理:把index.php做为php执行的脚本,把/abc/def做为参数传给php-cgi执行。
实现:nginx版本0.7.31以上支持fastcgi_split_path_info,这个指令可以设置SCRIPT_FILENAME和PATH_INFO的变量,用正则表达式将这两部分分开.
例子:我们在nginx配置文件"local"区块中加入以下代码。

location ~ ^.+\.php {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_split_path_info ^(.+\.php)(.*)$;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  (...)}

重启nginx服务

/usr/local/nginx/sbin/nginx -s reload



当nginx处理http://www.xxx.com/index.php/abc/def请求时,将会把"index.php"做为php的脚本,/abc/def做为index.php脚本的参数提交给php-cgi执行。

爱慕尔商城欢迎您的光临!
穿衣打扮  
城市物语