传入链接上的 Google Analytics(分析)查询字符串会破坏我网站的显示。
有谁知道为什么以下内容会导致我的网站无法正确加载其主页(它似乎阻止加载页面所需的某些插件)
http://mysite.com/?utm_medium=email
虽然这不会:
http://mysite.com/#utm_medium=email
如果您知道原因,我该如何解决这个问题?我有使用查询字符串方法的传入链接,它们都会导致访问者看到损坏的主页。
该站点使用“漂亮的网址”,因此站点路由不需要查询字符串。我尝试简单地通过 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)
最佳答案
“虽然这不是: 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
关于wordpress - 查询字符串断页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488401/