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

时间:2012-12-22 02:06:39

标签: 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.

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

我希望有正规经验的人可以分享解决方案,或指出我正确的方向。谢谢。

1 个答案:

答案 0 :(得分:2)

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

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