.htaccess 替换?在url中使用#以避免缓存破坏

.htaccess 替换?在url中使用#以避免缓存破坏,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我发现了谷歌分析的UTM变量破坏了我们的页面缓存。Google Analytics允许使用哈希而不是问号,所以 http://www.example.com/?utm_source=source&utm_medium=medium 及 其实是一样的。但是,正如我所说的,第一个选项会破坏缓存,而第二个选项则不会 当我们生成自己的链接时,我使用。但是,Feedburner或dlvr等服务。它将UTM活动变量附加一个?——因此我想在.htaccess中将所有/\UTM…重定向到/\UTM…

我发现了谷歌分析的UTM变量破坏了我们的页面缓存。Google Analytics允许使用哈希而不是问号,所以

http://www.example.com/?utm_source=source&utm_medium=medium

其实是一样的。但是,正如我所说的,第一个选项会破坏缓存,而第二个选项则不会

当我们生成自己的链接时,我使用
。但是,Feedburner或
dlvr等服务。它
将UTM活动变量附加一个
——因此我想在
.htaccess
中将所有
/\UTM…
重定向到
/\UTM…

我知道哈希应该使用
NE
(无转义),但我真的不知道重写条件和规则应该是什么样的

规则逻辑应为-

RewriteCond: if {path}?{query_string} AND {query_string} has 'utm_source' as a variable,
RewriteRule: redirect to {path}#{query_string} [R,NE,L]

有人能帮我搬这个地方吗?

好的,我问了这个问题后不久就收到了一张优惠券

解决办法是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} utm_source
RewriteRule ^ %{REQUEST_URI}#%{QUERY_STRING}? [R,NE,L]
</IfModule>

重新启动发动机
重写cond%{QUERY_STRING}utm_源
重写规则^%{REQUEST_URI}{QUERY_STRING}?[R,NE,L]
测试和工程

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} utm_source
RewriteRule ^ %{REQUEST_URI}#%{QUERY_STRING}? [R,NE,L]
</IfModule>