1

传入链接上的 Google Analytics 查询字符串会破坏我网站的显示。

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

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

虽然这不会:

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

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

该站点使用“漂亮的 url”,因此站点路由不需要查询字符串。我尝试通过 apache rewrite 简单地删除查询字符串(这很容易做到并且有效,我在下面给出了一个示例)但是我假设如果我这样做,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 的解决方案和将@Eduardo 的位合并到此之外,我还需要排除管理目录受到影响。我通过添加:

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

2 回答 2

2

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

如果 using#有效并且是有效选项而不是查询中的问号,您可以尝试以下操作:

# 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

于 2013-03-18T23:48:03.580 回答
1

脚本通常应该忽略它们不期望的查询参数。这是一个很好的经验法则,你的一个脚本被忽略了。您将不得不追踪哪个是有问题的脚本并自己修复它。或在此处提供更多信息,以便更轻松地进行故障排除。一个可以复制的页面的 url 是一个开始,我们至少可以为客户端或服务器端问题隔离一个 url。

作为一种解决方法,您可以改用 Anchor:

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

只需确保您配置 Google Analytics 以了解 url 锚部分内的参数。

_trackPageview只需在通话前添加以下内容。

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

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

于 2013-03-18T23:10:37.957 回答