教学之友,学习之友。

站长教学网

nginx实现if嵌套判断

时间:2013-01-06 13:48来源:未知 作者:ken 点击:

nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,我们可以用变量的方式来实现:

首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:

 if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
    return 403;
}

这是等效的,并真实可用的配置 站长教学网 eduyo.com

 set $flag 0;
if ($remote_addr ~ "^(12.34|56.78)") {
    set $flag "${flag}1";
}
if ($http_user_agent ~* "spider") {
    set $flag "${flag}2";
}
if ($flag = "012") {
    return 403;
}

(责任编辑:ken)
TAG标签: nginx if
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容