Conditional rule

Igor Sysoev igor at sysoev.ru
Wed May 12 22:15:00 MSD 2010


On Wed, May 12, 2010 at 07:13:00PM +0200, Vincent MAUGE wrote:

> Sorry for the previous partial email.
> 
> Hey,
> 
> I need to add conditional rule with more than one test.
> I need something like :
> if ($remote_addr != "aa.bb.cc.dd" && $request_uri !~  ^/XXXXX$)
> {
>    rewrite ...
> }
> else{
>   proxy_pass ...
> }
> 
> I don't find the good nginx syntax to obtain a such behaviour.
> I try :
> if ( )  {
>    if () {
>   }
> }
> without success
> 
> What is the proper way to do such condition ?

nginx does not support such syntax.
However, the proper way is to not use "if"s at all.
nginx should be configured using locations but not if/rewrites.

Instead of backward logic:

  if ($request_uri !~ ^/XXXXX$) {
      part A
  }

you should use clear logic:

    location / {
        part A
    }

    location /XXXXXX {
        part B
    }

What do you want to configure ?


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list