我有Web服务,它需要几个filter参数,如:
http://mydomain.com/filter1/value1/filter2/value2/filter3/value3
棘手的是,有些filtervariables是不存在的,所以这样的URL可以传递给这个服务:
http://mydomain.com/filter1//filter2//filter3/value3
现在我需要configuration我的nginx(或fastcgi)来保持双斜杠。 目前它正在替代双斜杠。 我是nginx和fastcgiconfiguration的新手,我不知道该怎么做。 当我请求第二个URL时,我从我的php脚本中捕获了request_uri,并且得到了
http://mydomain.com/filter1/filter2/filter3/value3
Plz帮助我。 提前致谢。
syntax: merge_slashes [on|off] default: merge_slashes on context: http, server
你必须使用: merge_slashes off
;
我对nginx + passenger(Ruby on Rails / Rack /等)也有类似的问题,我确认默认情况下,多个斜杠被折叠(在PATH_INFO
和REQUEST_URI
)。
添加merge_slashes off;
在nginx配置的server
上下文中修复它(我现在看到多个斜杠好吧)。
另外,请确保在proxy_pass行中没有结尾的斜线!
好的 : proxy_pass http://localhost:3000
;
BAD : proxy_pass http://localhost:3000/
;
根据以前的答案,解决方案是merge_slashes off;
在你的Nginx配置中。 但是,如果使用虚拟主机,则看起来需要将其包含在第一个主机中。 v1.4.1和v1.4.6就是这种情况。