我正在尝试重定向路径,例如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 和正则表达式的了解进行推测的,但我个人没有尝试过。