X-Accel-Redirect doesn't URL-decode paths

Nicholas Sherlock n.sherlock at gmail.com
Wed Sep 8 03:54:21 MSD 2010

On 8/09/2010 11:48 a.m., Nicholas Sherlock wrote:
> On 8/09/2010 3:20 a.m., gustavo wrote:
>> I'm using the X-Accel-Redirect feature in Nginx, but it fails to send
>> some files (returning a 404) because it does not URL-decode the
>> requested path. It does work when the file name need not be
>> URL-decoded.
>> So, for example, I have a file called "Mudança_Climática.pdf" in
>> /srv/static (whose URL alias on Nginx is "/internal/static"), my
>> application would set the X-Accel-Redirect header to:
>> X-Accel-Redirect: /internal/static/Mudan%C3%A7a_Clim%C3%A1tica.pdf
>> But then, Nginx will try to look up that file in the filesystem as:
>> /srv/static/Mudan%C3%A7a_Clim%C3%A1tica.pdf
>> However, if I requested "Climate_Change.pdf", it works.
> Doesn't the HTTP Location header work the same way, i.e. doesn't apply
> URL decoding?

Whoops, nevermind, I was thinking of "&" escaping :)

Nicholas Sherlock

More information about the nginx mailing list