Small bug in rewrite rules using if (ugh, yes, if is bad ...)
Maxim Dounin
mdounin at mdounin.ru
Wed Sep 28 08:25:39 UTC 2011
Hello!
On Tue, Sep 27, 2011 at 09:30:40PM -0400, Peter Portante wrote:
> On Wed, Aug 31, 2011 at 11:52 AM, Maxim Dounin <mdounin at mdounin.ru> wrote:
>
> > Hello!
> >
> > On Wed, Aug 31, 2011 at 11:26:29AM -0400, Peter Portante wrote:
> >
> > > Hello folks,
> > >
> > > Just thought I would report a small bug with rewrite interacting with if.
> > >
> > > Here is my simple setup:
> > >
> > > server {
> > > server_name example.dev.com;
> > > location ^~ /salad/add {
> > > if ($arg_paramThree = "foobar") {
> > > rewrite ^
> > > https://example.this.com?PARAM_ONE=$arg_paramOne&PARAM_TWO=$arg_paramTwo
> > ?
> > > redirect;
> > > }
> > > proxy_pass http://127.0.0.1:8080$request_uri;
> > > }
> > > }
> > >
> > > So when I hit the server with this URL:
> > >
> > >
> > http://example.dev.com/salad/add?paramThree=foobar¶mTwo=two¶mOne=one
> > >
> > >
> > > It is rewritten to be:
> > >
> > > https://example.this.com?PARAM_ONE=one&PARAM_TWO=two?paramThree=foobar
> > >
> > >
> > > If I use the following if conditional, the behavior is as expected:
> > >
> > > if ($args ~ "paramThree=foobar") {
> >
> > Works ok here. Which nginx version do you use?
> >
>
> 1.0.4
>
> thanks for taking the time to check it out.
Could you please provide debug log? Please see
http://wiki.nginx.org/Debugging for details.
Maxim Dounin
More information about the nginx
mailing list