目的:让php能够解析类似这样的url http://www.92csz.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.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
把index.php后面的部分当作参数? ❓
$fastcgi_path_info,$fastcgi_script_name分别都表示什么