我看到这用于清漆vcl if语句“〜”
if (req.url ~ "phpMyAdmin") {
return (pass);
}
据我所知,它像==
一样有点像in_array()
if ( req.http.User-Agent ~ "(Android|iPhone|iPad|BlackBerry|SAMSUNG)")
return(pass);
}
有人可以解释它实际意味着什么。它也是一个默认的php运算符吗?它和使用==
有什么区别
根据official documentation,~
是匹配运营商。
==
比较两个值,如果它们相等则返回true
~
根据正则表达式检查值,如果值匹配则返回true
〜匹配。可以与正则表达式或ACL一起使用。
# match an IP address against an ACL
if (client.ip ~ local) {
return (pipe);
}
Varnish使用与Perl兼容的正则表达式(PCRE)。要向PCRE引擎发送标志,例如进行不区分大小写的匹配,请在问号后面的parens中添加标记,如下所示:
# If host is NOT example dot com..
if (req.http.host !~ "(?i)example\.com$") {
...
}