你的位置:面向PHP >> 资讯 >> WEB服务器 >> Nginx >> 详细内容 在线投稿

Nginx/PHP Fastcgi PATH_INFO的一个问题

热度122票  浏览24次 【共0条评论】【我要评论 时间:2010年1月20日 16:59
文章信息

来源:转载

)VJ:{qJWK4_0 风雪之隅在自己的博客上发表了:Nginx/PHP Fastcgi PATH_INFO的一个问题面向PHP%x&w)Y9|/L

面向PHP(E:a7W!bF!^2[:Ae,]

通过在nginx.conf中模拟PATH_INFO的方法会有一个bug. 那就是PATH_INFO不会被urldecode.面向PHP8m|i_/vj HZ8L

面向PHP#w2P:`EPIT

对于Apache+PHP(php2handler)来说, PATH_INFO来自Apache, 不会有问题, 对于Apache fastcgi也应该没有问题, 因为PATH_INFO也是由Apache生成.面向PHP5lx)]g(`|

"tgFye)G,Q3Z\m0 但是对于nginx+fastcgi, 因为对于cgi来说PATH_INFO来自于ENV(fastcgi_params), 而php-cgi中的import_environment_variables不会对ENV中的变量做urldecode. 面向PHP:~#i W%ZB1n A"n

面向PHP~,j)EimF/H q)~

这样, nginx看到的url是urlencode以后的, 从url中分离出来的PATH_INFO也是urlencode后的, forward给php proxy以后, PHP看到的PATH_INFO也是urlencode的了.

k-NS K!B0 面向PHP/[/P;DBmKL \Iu

所以, 如果在PATH_INFO中包含一些宽字符, 或者是”+”, 那就要注意了, 需要我们主动的urldecode一下再使用.面向PHP5q&z?s5tEC.rm:R

TAG: Nginx nginx PHP php PATH Fastcgi INFO
顶:10 踩:8
对本文中的事件或人物打分:
当前平均分:-0.53 (32次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.11 (37次打分)
【已经有35人表态】
8票
感动
4票
路过
5票
高兴
2票
难过
2票
搞笑
5票
愤怒
4票
无聊
5票
同情
上一篇 下一篇
发表评论

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】