【问题标题】:extract string from req.url.path in VCL Fastly快速从 VCL 中的 req.url.path 中提取字符串
【发布时间】: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


    【解决方案1】:

    我相信以下内容可能符合您的要求:

    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 已从路径中提取出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2014-07-24
      • 2018-06-30
      • 2018-06-02
      • 1970-01-01
      相关资源
      最近更新 更多