首页 > 站点建设 > 【Nginx】配置实现多重if判断

【Nginx】配置实现多重if判断

2016年9月26日 发表评论 阅读评论

nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,并且不支持if的嵌套语法,我们可以用变量的方式来实现:
首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:

# 要实现的语句
if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
return 403;
}

# 这是等效的,并真实可用的配置
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;
}

原文:http://www.ifunsion.com/archives/2529



分类: 站点建设 标签: 775次阅读
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
订阅评论
  欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量