清漆正则表达式或 for if (bereq.url ~ "
varnish regex or for if (bereq.url ~ "
我尝试为 varnish 缓存 v4 创建一个正则表达式
sub vcl_backend_response {
if (bereq.url ~ "(/media|/bundles|/sonata_admin/|/build)$" ) {
{
unset beresp.http.set-cookie;
set beresp.http.cache-control = "public, max-age=2592000";
set beresp.ttl = 30d;
return (deliver);
}
我也试试
if (bereq.url ~ "(\/media|\/bundles|\/sonata_admin|\/build)$" ) {
我想包括所有位置从 /media 或 /bundles 或 ...
开始的文件
这行不通
在您的配置中,它不起作用,因为您正在匹配代表 "at the end of string" 的 $
。
您想使用 ^
即 "match at the beginning",因此:
if (bereq.url ~ "^/(media|bundles|sonata_admin|build)") {
unset beresp.http.set-cookie;
set beresp.http.cache-control = "public, max-age=2592000";
set beresp.ttl = 30d;
return (deliver);
}
我尝试为 varnish 缓存 v4 创建一个正则表达式
sub vcl_backend_response {
if (bereq.url ~ "(/media|/bundles|/sonata_admin/|/build)$" ) {
{
unset beresp.http.set-cookie;
set beresp.http.cache-control = "public, max-age=2592000";
set beresp.ttl = 30d;
return (deliver);
}
我也试试
if (bereq.url ~ "(\/media|\/bundles|\/sonata_admin|\/build)$" ) {
我想包括所有位置从 /media 或 /bundles 或 ...
开始的文件这行不通
在您的配置中,它不起作用,因为您正在匹配代表 "at the end of string" 的 $
。
您想使用 ^
即 "match at the beginning",因此:
if (bereq.url ~ "^/(media|bundles|sonata_admin|build)") {
unset beresp.http.set-cookie;
set beresp.http.cache-control = "public, max-age=2592000";
set beresp.ttl = 30d;
return (deliver);
}