0

我正在尝试将路径重定向www.something.com/apple/piewww.something.com/tickets/pie-details

这是我尝试过但不起作用的方法:

if (req.url ~ "^/apple/.*") {
    set req.url = "^/tickets/.*-details";
    error 701 req.url;
}

我错过了什么吗?

4

1 回答 1

0

您要么需要从正则表达式中捕获匹配项,要么如果它很简单,只需使用替换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 的了解进行推测的,但我个人还没有尝试过。

于 2019-10-07T12:44:16.823 回答