鉴于Varnish 3.0.2中的VCL代码:
sub vcl_recv {
if (req.http.host !~ "^(?i)(www|m|mobile)\.example\.com$" || req.http.host !~ "^(?i)example\.com$") {
error 403 "Forbidden";
}
return(lookup);
}
任何人都可以解释为什么我在www.example.com上获得403s?
由于
答案 0 :(得分:4)
我不知道varnish及其语法,但我将||
解释为逻辑OR
。因此www.example.com
与第二个替代==>不匹配这是真的,你输入if
。
可能你想要一个合乎逻辑的 AND ?如果两者都不成立,那么403?
所以试试:
if (req.http.host !~ "^(?i)(www|m|mobile)\.example\.com$" && req.http.host !~ "^(?i)example\.com$") {
error 403 "Forbidden";
}