清漆正则表达式或if(bereq.url〜“

问题描述 投票:0回答:1

我尝试为清漆缓存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或...开始的所有文件

这不起作用

varnish varnish-vcl
1个回答
0
投票

在您的配置中,它不起作用,因为您要与代表“字符串末尾”的$匹配。

您想使用^,它是“开头匹配”,因此:

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.