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