符号“~”在VCL中是什么意思?
What does the symbol "~" mean in VCL?
我看到这用于 varnish vcl if 语句 "~"
if (req.url ~ "phpMyAdmin") {
return (pass);
}
我知道它像 ==
有时像 in_array()
if ( req.http.User-Agent ~ "(Android|iPhone|iPad|BlackBerry|SAMSUNG)")
return(pass);
}
谁能解释一下它的实际含义。
它也是默认的 php 运算符吗?它和使用 ==
有什么区别
我认为php中没有“~”之类的符号。
已使用 php 文档检查过。
根据official documentation,~
是匹配运算符。
==
比较两个值,returns 如果它们相等则为真
~
根据正则表达式检查值,returns 如果值匹配则为真
~ Match. Can either be used with regular expressions or ACLs.
# match an IP address against an ACL
if (client.ip ~ local) {
return (pipe);
}
Varnish uses Perl-compatible regular expressions (PCRE). To send flags to the PCRE engine, such as to do case insensitive matching, add the flag within parens following a question mark, like this:
# If host is NOT example dot com..
if (req.http.host !~ "(?i)example\.com$") {
...
}
我看到这用于 varnish vcl if 语句 "~"
if (req.url ~ "phpMyAdmin") {
return (pass);
}
我知道它像 ==
有时像 in_array()
if ( req.http.User-Agent ~ "(Android|iPhone|iPad|BlackBerry|SAMSUNG)")
return(pass);
}
谁能解释一下它的实际含义。
它也是默认的 php 运算符吗?它和使用 ==
我认为php中没有“~”之类的符号。
已使用 php 文档检查过。
根据official documentation,~
是匹配运算符。
==
比较两个值,returns 如果它们相等则为真
~
根据正则表达式检查值,returns 如果值匹配则为真
~ Match. Can either be used with regular expressions or ACLs.
# match an IP address against an ACL
if (client.ip ~ local) {
return (pipe);
}
Varnish uses Perl-compatible regular expressions (PCRE). To send flags to the PCRE engine, such as to do case insensitive matching, add the flag within parens following a question mark, like this:
# If host is NOT example dot com..
if (req.http.host !~ "(?i)example\.com$") {
...
}