让Nginx支持php的PHP_INFO

本文介绍了一种改进的Nginx配置方案,确保.php文件及其路径信息正确传递给PHP-FPM,解决特殊URL(如/index.php/content/123.html)导致的404错误。通过调整Nginx配置,使PHP能够正常获取pathinfo参数。

通常我们在配置nginx使其支持php时,都是进行类似如下配置:

 location ~ .php$ {
	root         /var/www/bbs.dingd.cn;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

(反正我每次都偷懒,复制粘贴来就使用)

上述配置正常使用起来没什么问题,但是一旦遇到这样的url,就炸了:

/index.php/content/123.html

因为配置中是将以.php结尾的文件交给php-fpm处理,那么这样的url结尾就是.html所以肯定返回404啦。而且,php也是获取不到php_info这个值得。

so,经常半天的百度啊 百度,终于找到如下配置,可以正常使用(我稍微改动了一下)

        location ~ (\.php)(.*)$ {
			root         /var/www/bbs.dingd.cn;
			fastcgi_pass   127.0.0.1:9000;
			fastcgi_index  index.php;
			fastcgi_split_path_info  ^(.+\.php)(.*)$;
			#PHP中要能读取到pathinfo这个变量
			#就要通过fastcgi_param指令将fastcgi_split_path_info指令匹配到的pathinfo部分赋值给PATH_INFO
			#这样PHP中$_SERVER['PATH_INFO']才会存在值
			fastcgi_param PATH_INFO $fastcgi_path_info;
			fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
			include        fastcgi_params;
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值