咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:
if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
return 403;
}
从这句话我们可以知道,如果满足条件一并同时也满足条件二,就返回一个值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;
}
这里就相当于是定义一个值(值一),如果满足条件一这个值一就变成另一个值(值二),如果在满足条件二那么这个值二就变成另一个值(值三),最后如果值三等满足我们定义的一个值那么就返回我们的403.
这样就达到同样的效果了。