Nginx 配置文件中 if 语句 AND 和 OR 多条件判断的写法

老王的几乎所有网站都是基于 Nginx 的,因为相对于 Apache 来说,Nginx 占用的资源更小,而且各人觉得配置文件改起来也比较方式。但是 Nginx 不支持 if/else 语法,也不能使用逻辑运算符,那在需要多个判断条件的复杂情况中,应该如何在 Nginx 配置文件中使用 AND 和 OR 呢?

如果我们要在 Nginx 中使用这种多条件判断,那么我们需要引入一个新的变量,用这个变量来存储多个条件的判断结果。下面以 AND 和 OR 为例,介绍下这个条件变量的写法。

一、Nginx AND 多条件写法

新建一个条件变量 flag,只要 flag 是 1 就说明起码有一个条件成立:

set $flag 0;
if () {
    set $flag 1;
}
if () {
    set $flag 1;
}
if ($flag = 1) {
    your code;
}

二、Nginx OR 多条件写法

新建一个条件变量 flag,全都都是 1 则表示所有条件都成立:

set $flag "";
if () {
    set "${flag}1";
}
if () {
    set "${flag}1";
}
if ($flag ~* "11") {
    your code;
}
赞(0)
关注我们
未经允许不得转载:老王博客 » Nginx 配置文件中 if 语句 AND 和 OR 多条件判断的写法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址