Chinaunix首页 | 论坛 | 博客
  • 博客访问: 434420
  • 博文数量: 481
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1040
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-06 14:09
文章分类

全部博文(481)

文章存档

2013年(483)

我的朋友

分类: 系统运维

2013-02-28 12:37:49

原文地址:Nginx Rewrite 多条件判断 作者:jack_sir

在Nginx的Rewrite中需要用到$host 和 $request_uri 来做匹配判断。并根据匹配的条件来做重写处理:所以Rewrite规则可以写成: 

  if ($host ~ && $request_uri !~ ^/(api|public-api)) {
               rewrite ^(.*)$ https://$1  permanent;
       }

然而Nginx不支持多重添加判断、&& || 。
当需要用到多条件判断的时候,可以添加一个变量来做判断:

#Nginx Rewrite Double Condition Set.
        set $my_rewt "n";
        if ($host ~   ) {
                set $my_rewt "y";
        }
        if ($uri ~ ^/(api|public)) {
                set $my_rewt "n";
        }
        if ($my_rewt = "y") {
                rewrite ^(.*)$ https://$1 permanent;
        }

虽然增加变量来做判断,增加了配置的长度和复杂性、但却可以符合实际的情况。。那就这样将就着用吧。。
阅读(764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~