Nginx配置fastcgi配置
https://segmentfault.com/a/1190000002667095
fastcgi_index
作用域:http, server, location
当请求以/
结尾的时候,会将请求传递给所设置的index.php文件处理。
fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_split_path_info
作用域:location
Nginx默认获取不到PATH_INFO的值,得通过fastcgi_split_path_info指定定义的正则表达式来给$fastcgi_path_info
赋值。
其正则表达式必须要有两个捕获。
第一个捕获的值会重新赋值给
$fastcgi_script_name
变量。第二个捕获到的值会重新赋值给
$fastcgi_path_info
变量。
例子:
location ~ ^(.+\.php)(.*)$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info;}
原始请求是 /show.php/article/0001
。
通过分割,FastCGI得到的结果是:
SCRIPT_FILENAME:
/path/to/php/show.php
PATH_INFO:
/article/0001
Nginx在0.7.31以前是没有fastcgi_split_path_info这个指令的,而0.7.x这个版本一直存活了好多年,后面才高歌猛进,导致网上存在大量旧版本通过正则自己设置PATH_INFO的方法。
<br/>
评论已关闭