PHP-一个关于nginx配置问题

意见反馈 意见反馈 主题:991 回复:2082

PHP-一个关于nginx配置问题

晚风撩人 发布于 2016-12-30 字数 1069 浏览 1004 回复 1

a.php
<?php
echo $_SERVER['PATH_INFO']
?>
访问:http://www.a.com/a.php/123.html 得到结果/123.html
访问:http://www.a.com/a.php/123.html?id=2222 结果为:/123.html
nginx如果配制才能达到上面的效果。
我现在访问http://www.a.com/a.php/123.html 直接404了。
注意:demo.php/aa类似这样的地址以前我在apache下可以直接执行。

配制如下:
我使用的是colaphp
vhost:

server{
listen 80;
server_name a;
index index.html index.htm index.php;
root /var/www/a;

location / {
index index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
break;
}

}

location ~ / {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass default-cgi;
fastcgi_index index.php;
include fastcgi_params;
}
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

想挽留 2017-04-17 1 楼

你需要在虚拟目录下配置pathinfo
添加配置:

 location ~ .+.php($|/) {
set $script $uri;
set $path_info "/";
include fcgi.conf;

if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
set $path_info $2;
}

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php?IF_REWRITE=1;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;

}