Repost: Inconsistent URL encoding in X-Accel-Redirect

Sorry for the repost :: can anyone else confirm what we’re seeing? :
I believe I’ve found an inconsistency in url encoding of
X-Accel-Redirect requests.

The URL that I’m providing in my X-Accel-Redirect header looks something
like:
/BACKING_HOST_LOCATION/Green%20Apple.gif?param1=TzJPvoCEV34&param2=U%2F8%3D

When this is supplied to nginx, the PATH part of the url gets url
encoded, however the parameters are passed untouched to the upstream
(sniffed with wireshark):

GET /Green%2520Apple.gif?param1=TzJPvoCEV34&param2=U%2F8%3D

(everything BEFORE the ? is urlencoded, the params are not)

I have a really, really gross hack where I only url encode the
parameters to be supplied, and leave the path alone, then pass to nginx
but this seems like a bug to me.

It would be convenient to have greater control of the the
X-Accel-Redirect urlencoding process; there are some times when I’d like
to supply a pre-encoded URL and pass it unchanged to the upstream.

I have tried this in 0.7.6, believe it also occurs in 0.6.x

bmoran -a-t- onehub.com

On Tue, May 05, 2009 at 04:44:39PM -0700, Brian M. wrote:

(sniffed with wireshark):
X-Accel-Redirect urlencoding process; there are some times when I’d like
to supply a pre-encoded URL and pass it unchanged to the upstream.

I have tried this in 0.7.6, believe it also occurs in 0.6.x

Internally nginx uses unescaped URIs (PATH part), therefore it accepts
unescaped URI in X-Accel-Redirect.

Igor S. wrote:

Internally nginx uses unescaped URIs (PATH part), therefore it accepts unescaped URI in X-Accel-Redirect.

Can you tell me if the URI parameters are treated differently than the
base URL? As I mentioned in my previous post, it seems that parameters
are NOT URLencoded by nginx on an X-Accel-redirect (but the base-part
is).