在从缓存中提取匹配对象之前,是否可以'忽略'查询字符串变量,但实际上并没有将它们从URL中移除到最终用户?忽略utm_ *值与清漆?
例如,所有的营销utm_source
,utm_campaign
,utm_*
值不会改变网页的内容,他们只是改变了很多活动参加竞选活动,我们所有的客户端跟踪的使用。
所以这也意味着URL不能在客户端更改,但它应该以某种方式在缓存中“标准化”。
基本上我想所有这些...
http://example.com/page/?utm_source=google
http://example.com/page/?utm_source=facebook&utm_content=123
http://example.com/page/?utm_campaign=usa
...所有的访问命中http://example.com/page/
缓存然而,这URL会导致MISS(因为参数不是utm_ *参数)
http://example.com/page/?utm_source=google&variation=5
将触发缓存
http://example.com/page/?variation=5
此外,牢记用户看到URL必须保持不变,我不能重定向到一些没有params中,任何这样的解决方案。
所以优良:d – Tallboy
这'[^&=]'将不能处理'具有在其中'='符号(想象utm_'参数'utm_track =富= bar',我相信。=符号在URI的查询部分是合法的,即使web表单通常会逃脱它们。有人(或广告网络)伪造一个UTM载入的URI可能不会,我会用'[^&=]'替换'[^&]'因为你想删除整个查询参数直到下一个查询参数。 – mogsie
请参阅http://stackoverflow.com/q/13144172/1391963 – Pere