Small bug in rewrite rules using if (ugh, yes, if is bad ...)
    Maxim Dounin 
    mdounin at mdounin.ru
       
    Wed Aug 31 15:52:33 UTC 2011
    
    
  
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?
Maxim Dounin
    
    
More information about the nginx
mailing list