鉴于 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);
}
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么我在“www.example.com”上收到 403?
谢谢
我不知道 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";
}
Run Code Online (Sandbox Code Playgroud)