2012-01-01 29 views
5

我有一個網站的問題,我不知道我必須使用哪個代碼來解決它。什麼重定向代碼可以解決我的重複主頁?

我碰到一個爬行測試,結果如下結構:

www.domain.com
www.domain.com/(這是一個很大的問題,因爲它是重複的內容)
www.domain.com/category
www.domain.com/category/page
www.domain.com/category2
www.domain.com/category2/page
www.domain.com/category3/ subcat4 /頁

正如您所看到的,子頁面沒有結尾斜槓。 我的問題是:什麼重定向代碼是解決重複主頁問題最有效的方法?考慮到,子頁面沒有(所以不需要?)一個尾部的斜線。

回答

2

www.domain.comwww.domain.com/是相等的!在某些情況下,瀏覽器具有愚蠢的屬性來隱藏URL的前綴和後綴。

這兩個示例都會指向http://www.domain.com/,而Firefox則是如此。將只顯示默認設置www.domain.com。第一個斜線後面的所有東西都可以,但不能有第二個。

這意味着如果您有一個名爲downloads的目錄,並且瀏覽器請求http://www.domain.com/downloads,服務器將把客戶端重定向到http://www.domain.com/downloads/

但是請注意在搜索enigne優化頁面中經常使用的「虛擬」路徑。大多數情況下,CMS不會將客戶端從 http://www.domain.com/article/welcome/重定向到http://www.domain.com/article/welcome,這將產生雙重內容,也就是說,CMS不會提供解決雙重內容的權利meta

+2

不是真的,或者至少是不相關的。谷歌認爲這兩個URI是不同的,並將它們都添加到索引。並將它們標記爲重複。請參閱http://googlewebmastercentral.blogspot.com/2010/04/to-slash-or-not-to-slash.html – Nanne 2012-01-01 14:08:20

+0

我正在談論域之後的斜槓。不是路徑的斜線。我會更新我的答案。 – rekire 2012-01-01 14:10:16

+0

是的,但這個網站響應(或聲稱我認爲)到'域'以及'域/'。如果他們沒有重定向但是服務200,這仍然是一個問題。 – Nanne 2012-01-01 14:13:30

4

你可以只用強制的.htaccess 全球的東西看起來像這樣(快速未經測試的代碼)

RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 

可以ofcourse只需指定根拖尾斜槓,而不是使用(*)。