regex - Varnish 中的 URL 重写 - 删除不需要的 URL 参数

标签 regex url-rewriting varnish

我的应用程序正在根据 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,转发到我的后端,我应该是金色的。

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

最佳答案

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

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

关于regex - Varnish 中的 URL 重写 - 删除不需要的 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999435/

相关文章:

regex - Django 中的 Slug Url 正则表达式

objective-c - 正则表达式(搜索函数(@"string content")以获取 "string content"

php - Drupal:动态质量 301 重定向

regex - 如何替换正则表达式中的特定字符?

caching - 缓存数百万网页的最佳方法

Varnish :有条件地清除缓存以确保资源是最新的

c# - 使用正则表达式从字符串中检索数字

regex - 屏蔽除最后四位之外的所有数字

.htaccess - 使用 .htaccess 重定向来自外部站点的错误 URL 链接

vcl - 如何不在 Varnish 中缓存 500 个内部服务器错误