nginx 中的条件判断

初用 nginx ,发现 nginx 不支持if嵌套,逻辑与,逻辑或。但是可以采用变量叠加的方式来实现,举例:

      location ~ / {
        root /Users/manba/Desktop/html;

        set $talent_static_flag "0";

        if ($request_uri ~* "\.(gif|jpg|jpeg|bmp|png|ico|txt|json|svg|js|css)$") {
          # 请求资源类型为静态资源
          set $talent_static_flag "1";
        }

        if ($http_referer ~ ".*\/talent\/?") {
          # 请求referer包含 /talent
          set $talent_static_flag "{$talent_static_flag}1"; # 这里的值包含 {},😂暂时不知道如何去掉 
        }

        if ($talent_static_flag = "{1}1") {
          rewrite /(.*) / break;
          proxy_pass http://demo.airtlab.com;
          break;
        }
      }
posted on 2020-12-12 19:41  manbax  阅读(509)  评论(0编辑  收藏  举报