我发现Google Analytics的UTM变量破坏了我们的页面缓存。 Google Analytics允许使用哈希而不是问号,所以
http://www.example.com/?utm_source=source&utm_medium=medium
和
http://www.example.com/#utm_source=source&utm_medium=medium
实际上是一样的。但是,正如我所说,第一个选项破坏了我们的缓存而第二个选项没有。
当我们生成自己的链接时,我会使用#
。但是,Feedburner或dlvr.it
等服务会使用?
附加UTM广告系列变量,因此我希望.htaccess
将所有/?utm...
重定向到/#utm...
我知道哈希应该使用NE
(No Escape),但老实说我无法弄清楚重写条件和规则应该如何。
规则逻辑应该是 -
RewriteCond: if {path}?{query_string} AND {query_string} has 'utm_source' as a variable,
RewriteRule: redirect to {path}#{query_string} [R,NE,L]
有人可以帮助我这个地方吗?
答案 0 :(得分:1)
好的,我问了这个问题后不久就得到了一个尤里卡......
解决方案是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} utm_source
RewriteRule ^ %{REQUEST_URI}#%{QUERY_STRING}? [R,NE,L]
</IfModule>
经过测试和工作......