【发布时间】:2021-11-05 09:24:39
【问题描述】:
我需要帮助从字符串req.url.path 中提取值,如下所示:
/a/b/c/d
需要提取c,如果有url,比如/a,应该返回''。
我试过了
regsub(req.url.path, "/a/b/", "\5");
也尝试过替换。 但它对我没有有效的工作。请帮帮我。
【问题讨论】:
标签: varnish varnish-vcl fastly fastly-vcl
我需要帮助从字符串req.url.path 中提取值,如下所示:
/a/b/c/d
需要提取c,如果有url,比如/a,应该返回''。
我试过了
regsub(req.url.path, "/a/b/", "\5");
也尝试过替换。 但它对我没有有效的工作。请帮帮我。
【问题讨论】:
标签: varnish varnish-vcl fastly fastly-vcl
我相信以下内容可能符合您的要求:
if (req.url.path ~ "^/a/.+/c") {
set req.url = regsub(req.url.path, "/c", "") + "?" + req.url.qs;
}
它会检查 URL 路径是否以 /a 开头,后跟 /c(还假设中间有段,例如 /b 根据您给定的示例 /a/b/c/d)。
这里有一个 Fastly Fiddle 链接供您使用代码:
https://fiddle.fastlydemo.net/fiddle/527480ba
所以给定输入的 URL 路径:
/a/b/c/d?id=testing
它会变成:
/a/b/d?id=testing
请注意,/c 已从路径中提取出来。
【讨论】: