Hi everybody,
I am in trouble with my nginx configuration.
my version of nginx is 1.1.19
My goal is to redirect http://example.com//site to http://example/site
My app is in Rails and I want to handle this redirect with Rack.
However I am not able to detect this ‘//’ in the url.
Nginx send to my app ‘/site’ and not ‘//site’.
Seeing that my rails app had not the right info I tried to handle this
redirection at the nginx level but I had the same issue ; I am not able
to
detect the ‘//’.
I tried to desactivate the merge slashes option but it did not change
anything
$uri and $request_uri still contained ‘/site’ and not ‘//site’
Do you have any idea why the first slash is skip ?
I tried to follow some examples but nothing worked 
http://rosslawley.co.uk/archive/old/2010/01/10/nginx-how-to-url-cleaning-removing/
http://bneijt.nl/blog/post/nginx-and-the-extra-slashes/
By default, nginx ‘cleanse’ URI by decoding/correcting specific cases
before matching it against a location. The multiple slashes are part of
it.
Read how location
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
works.
I suppose the internal $uri
http://nginx.org/en/docs/http/ngx_http_core_module.html#var_uri
variable
holds watch nginx uses for its logic, but in any case holds a
decoded/corrected version of the URI.
If you do not want nginx to automatically try to correct multiple
slashes, you can override the default configuration for the
corresponding
merge_slashes
http://nginx.org/en/docs/http/ngx_http_core_module.html#merge_slashes
directive.
Be careful then: your locations won’t match if they do not find any
exact
stanza suitable for them. ;o)
You will be up for the pain you asked for…
B. R.
On Mon, Oct 6, 2014 at 11:17 AM, Benoit Vasseur
[email protected]