2013-03-18 87 views
1

传入链接上的Google Analytics查询字符串会中断我的网站显示。查询字符串中断页面

有谁知道为什么下面会导致我的网站无法正确加载其主页(它似乎阻止某些插件,网页需要的加载)

http://mysite.com/?utm_medium=email 

虽然这并不:

http://mysite.com/#utm_medium=email 

如果你知道为什么,我该如何解决这个问题?我有传入的链接使用查询字符串方法,它们都导致访问者看到一个破损的主页。

该网站使用“漂亮的网址”,因此网站路由不需要查询字符串。我尝试通过apache重写简单地删除查询字符串(这很容易做,并且工作,我在下面给出一个例子),但是我认为Google Analytics(分析)无法跟踪它的需求,如果我这样做。

这里是我的情况下.htaccess该因素是:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# Handle redirection from https to http 
RewriteCond %{HTTPS} =on 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301] 

# Example of what would strip query strings from url 
#RewriteCond %{THE_REQUEST} \?[^\ ]+ 
#RewriteRule (.*) /$1? [R=301,L] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

额外

除了@ FAA的解决方案,并纳入@爱德华多的位到这个我还需要排除admin目录不受影响。我这样做是通过添加:

RewriteCond %{REQUEST_URI} !^\/*(wp-admin) 

回答

2

虽然这并不:http://mysite.com/#utm_medium=email

如果使用#的作品,是一个有效的选择,而不是在查询中的问号,你可以试一下像这样:

# Example of what would strip query strings from url 
RewriteCond %{QUERY_STRING} . 
RewriteRule ^(.*) /$1#%{QUERY_STRING}? [R=301,L,NE,NC] 

重定向

http://mysite.com/?query

http://mysite.com/#query

+0

THX。起初它不起作用,但与htaccess通常情况一样,它似乎被缓存了......它最终清除了,然后这就做了窍门。我还使用@爱德华多的小费让GA接受哈希。 – Stuart 2013-03-19 02:06:51

1

脚本通常应该忽略他们不期望的查询参数。这是一个很好的经验法则,你的一个脚本忽略了。你将不得不追查哪个是有问题的脚本并且自己修复它。或者在这里提供更多信息,以便于排除故障。它可以复制的网页的网址是一个开始,我们至少可以隔离一个网址来解决客户端或服务器端问题。

你可以使用锚,而不是一个解决办法:

http://mysite.com/#utm_medium=email

只要确保您配置谷歌分析,了解该URL的锚部内的参数。

只需在您的_trackPageview调用之前添加以下内容。

_gaq.push(['_setAllowAnchor', true]); 

参考:https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiCampaignTracking#_gat.GA_Tracker_._setAllowAnchor