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

Maxim Dounin mdounin at mdounin.ru
Tue Sep 7 19:44:14 MSD 2010


On Tue, Sep 07, 2010 at 11:20:08AM -0400, gustavo wrote:

> Hello,
> 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.
> This seems like a bug, isn't it? Or is it a bad configuration?

X-Accel-Redirect expected to contain non-encoded URI.  This isn't 
really right, but it's how it currently works.

Maxim Dounin

More information about the nginx mailing list