我正在尝试将路径重定向www.something.com/apple/pie
到www.something.com/tickets/pie-details
这是我尝试过但不起作用的方法:
if (req.url ~ "^/apple/.*") {
set req.url = "^/tickets/.*-details";
error 701 req.url;
}
我错过了什么吗?
我正在尝试将路径重定向www.something.com/apple/pie
到www.something.com/tickets/pie-details
这是我尝试过但不起作用的方法:
if (req.url ~ "^/apple/.*") {
set req.url = "^/tickets/.*-details";
error 701 req.url;
}
我错过了什么吗?
您要么需要从正则表达式中捕获匹配项,要么如果它很简单,只需使用替换regsub()
但是我读到这些不再捆绑在核心清漆中,所以你可能需要一个 vmod。这似乎是您需要的:https ://gitlab.com/uplex/varnish/libvmod-re
以下是一些关于如何使用它的文档:https ://docs.fastly.com/en/guides/vcl-regular-expression-cheat-sheet#capturing-matches
基本上,该re
对象允许您使用匹配的部分,然后使用字符串操作组装新的 url。
以上所有内容都是根据我对 vcl 和 regex 的了解进行推测的,但我个人还没有尝试过。