PHP-一个关于nginx配置问题
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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;
}