【问题标题】:URL Rewriting in Varnish - Remove unwanted URL parametersVarnish 中的 URL 重写 - 删除不需要的 URL 参数
【发布时间】:2012-12-09 13:58:46
【问题描述】:

我的应用程序正在根据 4 个唯一的 URL 参数生成页面,并且我正在尝试使用 varnish 来缓存页面。这种情况有点不寻常,因为我无法控制传递给我的应用程序的 URL 参数的数量或顺序。凭借我有限的正则表达式技能和谷歌搜索能力,我找到了一个匹配我想要的参数的解决方案:

[&|?](?:Param1|Param2|Param3|Param4)=[^&\s]+

但是由于VCL的限制,我需要完全相反的:

Match any URL parameters that are not Param1, Param2, Param3 or Param4.

然后从 URL 中删除,根据 url 设置 hash_data,转发到我的后端,我应该是金色的。

我希望有一些正则表达式经验的人可以分享解决方案或为我指明正确的方向。谢谢。

【问题讨论】:

    标签: regex url-rewriting varnish


    【解决方案1】:

    听起来您想要negative lookahead assertions,您可以将其与(?!...) 一起使用。我不知道你的参数是什么样的,所以我猜是[\w\d]+

    [&|?](?!Param1|Param2|Param3|Param4)[\w\d]+=[^&\s]+
    

    【讨论】:

    • 我在发布之前尝试了与此非常相似的方法,但我没有在参数组之后包含 [\w\d]+。睡了一会儿,头脑清醒后,它非常有意义,并且在清漆中完美工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-05-17
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2021-09-12
    相关资源
    最近更新 更多