现在的位置: 首页Nginx>正文
nginx配置path_info
2011年05月05日 Nginx 评论数 2 ⁄ 被围观 9,719 次+

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

  1. location ~ ^.+\.php   
  2. {   
  3.     fastcgi_pass 127.0.0.1:9000;   
  4.     fastcgi_split_path_info ^(.+\.php)(.*)$;   
  5.     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
  6.     fastcgi_param PATH_INFO $fastcgi_path_info;   
  7.     fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;   
  8.     (...)   
  9. }  

重启nginx服务

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

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

本文地址:http://www.92csz.com/27/563.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 2 条留言 其中:访客:2 条, 博主:0 条

  1. 少林功夫好 : 2015年04月03日19:50:35  1楼

    把index.php后面的部分当作参数? :?:

  2. 少林功夫好 : 2015年07月17日10:34:39  2楼

    $fastcgi_path_info,$fastcgi_script_name分别都表示什么