Forum: NGINX Bug? Inconsistent url encoding in X-Accel-Redirect

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
87d08bdf14ef944738d2a81105b12606?d=identicon&s=25 Brian Moran (Guest)
on 2009-04-21 19:00
(Received via mailing list)
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
This topic is locked and can not be replied to.