conditional expression

173279834462 nginx-forum at
Sat Mar 4 21:52:36 UTC 2017


Our local policy demands the rejection of any query; we do this as follows:
if ($is_args) { return 301 /; }

The introduction of Thunderbird autoconfiguration demands an exception to
the above policy, because of 

The resulting rule would be 

if (($is_args) && ($args !~ emailaddress=.+%40[a-zA-Z0-9\.\-]+)) { return
301 /; }

The rule does not work, because nginx does not parse the AND condition. 

Of course, you cannot just remove $is_args, because $args is usually empty.

The alternative would be if ($args ~ emailaddress=.+%40[a-zA-Z0-9\.\-]+)) {
allow all; } else { return 301 /; }, 
but nginx does not parse if-then-else statements. 

Are we stuck in the cage?

Posted at Nginx Forum:,272758,272758#msg-272758

More information about the nginx mailing list