2013-03-18 80 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