Patch for nginx handling of X-Accel-Redirect URLs

Maxim Dounin mdounin at
Thu Feb 2 16:43:23 UTC 2012


On Thu, Feb 02, 2012 at 03:58:42PM +0400, vitalif at wrote:

> >No.  The NGX_UNESCAPE_URI won't be sufficient, and it's in fact
> >does the wrong thing: it will stop unescaping on first unescaped
> >'?', thus preventing files with two question marks from working.
> ...And why is it wrong???
> As far as I know, the first UNESCAPED '?' means the beginning of
> query string.
> If you want to pass a link to file with two '??' in the name, just
> escape them and that's it.
> (Tested the last patch which I've sent, and it allows access to such
> files)

The "unescaped '?'" in my quote above should be read as "a 
question mark which was obtained via removing %xx escaping from a 
URI".  That is, on "%3D" it will unescape it and stop.

In the patch you've sent you've removed relevant code from 
ngx_unescape_uri(), and that's why it works for you.  I'll review 
the patch as time permits.

Maxim Dounin

More information about the nginx-devel mailing list