PHP-一个关于nginx配置问题

发布于 2016-12-30 14:58:07 字数 1000 浏览 1156 评论 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;
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(1

想挽留 2017-04-17 06:20:46

你需要在虚拟目录下配置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;

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文