使用正则表达式清漆缓存子目录
Varnish cache subdirectories using regex
使用 Varnish 4 我正在尝试缓存 url 的特定样式:具有一定数量目录的样式:
if (req.url ~ "(?Ui)^/cars/.+/.+/.+/$") {
return(hash);
}
这应该匹配以下内容:
/cars/only/four/subdirectories/
/cars/a/b/c/
但是,它不应该匹配这些:
/cars/not/five/sub/directories/
/cars/not/four/and/some.html
/cars/not/three/
/cars/not_two/
但是,我的代码似乎与尾随 /(实际上是 ^/cars/.*/$
) 匹配。我哪里错了?
编辑:一些进一步的测试,我对 'effectively' 部分是错误的。它似乎匹配四个或更多目录 - 只有那些以 /
结尾的目录
您似乎试图让 .
匹配除 /
以外的任何内容,因此这样定义它是有意义的:
"(?Ui)^/cars/[^/]+/[^/]+/[^/]+/$"
否则,它匹配任何东西(包括/
)。
使用 Varnish 4 我正在尝试缓存 url 的特定样式:具有一定数量目录的样式:
if (req.url ~ "(?Ui)^/cars/.+/.+/.+/$") {
return(hash);
}
这应该匹配以下内容:
/cars/only/four/subdirectories/
/cars/a/b/c/
但是,它不应该匹配这些:
/cars/not/five/sub/directories/
/cars/not/four/and/some.html
/cars/not/three/
/cars/not_two/
但是,我的代码似乎与尾随 /(实际上是 匹配。我哪里错了?^/cars/.*/$
)
编辑:一些进一步的测试,我对 'effectively' 部分是错误的。它似乎匹配四个或更多目录 - 只有那些以 /
结尾的目录您似乎试图让 .
匹配除 /
以外的任何内容,因此这样定义它是有意义的:
"(?Ui)^/cars/[^/]+/[^/]+/[^/]+/$"
否则,它匹配任何东西(包括/
)。