On Thu, Feb 02, 2012 at 03:58:42PM +0400, email@example.com 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.