传入链接上的Google Analytics查询字符串会破坏我网站的显示。
有谁知道为什么以下会导致我的网站无法正确加载其主页(这似乎阻止加载页面需要的一些插件)
http://mysite.com/?utm_medium=email
虽然这不是:
http://mysite.com/#utm_medium=email
如果您知道原因,我该如何解决这个问题?我有使用查询字符串方法的传入链接,它们都导致访问者看到一个破碎的主页。
该网站使用“漂亮的网址”,因此网站路由不需要查询字符串。我尝试通过apache重写删除查询字符串(这很容易做到并且有效,我在下面给出一个例子)但是我认为如果我这样做,谷歌分析将无法跟踪它需要什么。
以下是我的.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的解决方案并将@ Eduardo的内容纳入其中之外,我还需要排除管理目录受到影响。我这样做是通过添加:
RewriteCond %{REQUEST_URI} !^\/*(wp-admin)
答案 0 :(得分: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
答案 1 :(得分:1)
脚本通常应该忽略它们不期望的查询参数。这是一个很好的经验法则,你的一个脚本忽略了。您将不得不追踪哪个是有问题的脚本并自行修复。或者在此处提供更多信息,以便更轻松地进行故障排除。一个可以重现的页面的URL是一个开头,我们至少可以为客户端或服务器端问题隔离一个URL。
作为一种解决方法,您可以改为使用Anchor:
http://mysite.com/#utm_medium=email
请确保您配置Google Analytics以了解网址锚点部分内的参数。
只需在_trackPageview
来电之前添加以下内容。
_gaq.push(['_setAllowAnchor', true]);