很多PHP框架默认使用PHP的PATH_INFO 来进行URL重写,当用Nginx作为http服务器的时候,就出现问题了,无法进行重写,导致访问404,当我们想要使用PHP框架的PATH_INFO重写时,就要为Nginx定义PATH_INFO这个变量。
location ~ .*\.(php|php5)?$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-cgi.socket;
fastcgi_index index.php;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$")
{
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi.conf;
}
注意去掉(php|php5)?$ 后面的$
阅读(1648) | 评论(0) | 转发(0) |