I have web service which takes several filter parameters, something like :
http://mydomain.com/filter1/value1/filter2/value2/filter3/value3
The tricky thing is sometimes some of the filter variables are absent, so urls as such could be passed to this service:
http://mydomain.com/filter1//filter2//filter3/value3
Now I need to configure my nginx (or fastcgi) to keep the double slashes. Currently it's replacing double slashes to single ones. I'm new to nginx & fastcgi configuration and I don't know how to do that. I captured the request_uri from my php script when I requested the second url, and I got
http://mydomain.com/filter1/filter2/filter3/value3
Plz help me. Thanks in advance.
I had a similar issue with nginx+passenger (for Ruby on Rails / Rack / etc.), and I confirm that by default, multiple slashes are collapsed (in both
PATH_INFO
andREQUEST_URI
).Adding
merge_slashes off;
in theserver
context of the nginx configuration fixed it (I now see multiple slashes alright).Also, make sure you don't have a trailing slash in the proxy_pass line!
GOOD:
proxy_pass http://localhost:3000
;BAD:
proxy_pass http://localhost:3000/
;As per previous answers, the solution is to use
merge_slashes off;
in your Nginx config. However, if you use virtual hosts, then it looks like you need to include it in your first host. That is the case on v1.4.1 and v1.4.6.You must use:
merge_slashes off
;