Nginx 实现多重判断

在Nginx 配置文件里面有简单的条件控制,但并不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,这就需要换一种方法来做了


如下:
    set $tag 0;
    if ($host = 'www.lshell.com') {
        set $tag  "${tag }1";
    }

    if ($scheme = 'http') {
       set $tag  "${tag }2";
    }

    if ($tag  = "01") {
        rewrite ^/(.*) https://www.lshell.com/$1 permanent;
    }

    if ($tag  = "012") {
        rewrite ^/(.*) https://www.lshell.com/$1 permanent;
    }

附if语法:
语法:if(condition){………}
配置作用域:server,location

匹配条件

"="和""!="" 变量等于不等于条件
"~" 和"~" 匹配到指定内容是否区分大小写
"!~"和"!~" 匹配到指定内容是否区分大小写
"-f"和"!-f" 检查一个文件是否存在
"-d" 和"!-d" 检查一个目录是否存在
"-e"和"!-e" 检查一个文件,目录,软连接是否存在
"-x"和"!-x" 检查一个是否有执行权限
匹配的内容可以是字符串也可以是一个正则表达式。
如果一个正则表达式包含"}"或者";"就必须包含在单引号或双引号里面。

参考网页:
1. http://new.nginxs.net/read.php/post-201605211340/
2. http://www.cnblogs.com/aguncn/p/4179035.html

Comments

Popular posts from this blog

Openvpn客户端路由配置

搜索引擎网站收录地址大全