将www重定向到非www失去Google gclid跟踪代码

时间:2014-12-16 16:55:14

标签: apache .htaccess

我已使用Generic htaccess redirect www to non-www中的.htaccess代码成功将www.mysite.com重定向到mysite.com,但在此过程中它会删除gclid参数,而现在AdWords并非如此正确计算点击次数。

是否可以修改下面的代码,以便在重定向后保留所有参数?

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

1 个答案:

答案 0 :(得分:0)

来自:https://wiki.apache.org/httpd/RewriteFlags/QSA

QSA =查询字符串追加。

此规则将由ReWrite规则生成的GET查询字符串附加到浏览器发送的初始GET查询字符串。例如,采用以下RewriteRule:

RewriteRule ^/product/([0-9]*)/?     /product.php?product_id=$1    [QSA]

这简单地使product_id号看起来像是用户的目录。现在说我有两个不同的页面视图,view = short和view = long。无论出于何种原因,我不想通过使用RewriteRule使这些视图看起来像目录。所以我希望能够做到这样的事情:

http://example.com/product/1351283/?view=short

让我们看看QSA是如何运作的。使用QSA,我的最终重写URL是

http://example.com/product.php?product_id=1351283&view=short

QSA导致RewriteEngine将现有查询字符串(view = short)附加到新查询字符串(product_id = 1351283)。如果没有QSA,现有的查询字符串将被新的查询字符串替换:

http://example.com/product.php?product_id=1351283

如果您依赖GET变量执行大量脚本编写,则必须在所有RewriteRules上启用QSA标志。