2011-08-15 115 views
1

我目前正在嘗試爲我正在處理的網站的所有網頁做301重定向。問題是,這個網址:我該如何做301重定向,因爲重複的網址

http://site.com/cash/ 
http://site.com/credit/ 

http://site.com/cash 
http://site.com/credit 

顯示

同一頁面這將導致一些重複URL問題並開始分裂你我們的SEO的PageRank的。

我嘗試這樣做,我的網站上,所有的搜索引擎指向非斜線版本

BTW我有大約90頁,我不得不改變...任何想法上實現的好方法這

我該怎麼做301重定向在htaccess的做到這一點對我的所有

網頁

編輯:

因此,要正確理解。這將做301重定向

# Remove the trailing slash 
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC] 
RewriteRule ^(.+)/$ http://www.example.com/$1 [R=301,L] 

但這是如何排除文件夾1

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

和我會提出,在同一個htaccess的文件或創建的文件夾1目錄另一個htaccess文件

回答

2

您可以添加以下到您的.htaccess刪除尾隨斜線

# Remove the trailing slash 
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC] 
RewriteRule ^(.+)/$ http://www.example.com/$1 [R=301,L] 


更新

然後,您也可選擇添加www

RewriteCond %{HTTP_HOST} ^example.com$ 
RewriteRule (.*) http://www.example.com$1 [R=301] 

或刪除它

RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 
+0

是否在example.com/上重定向,因爲在第三行我看到R = 301,這是301重定向,但它有一個www ...這很重要 – Trace

+0

@Tamer:我添加了一個更新,其中包含兩條附加規則可以用來執行或刪除'www'。 – stealthyninja

+0

這個邏輯有一個問題,因爲所有文件夾example.com/folder1/或example.com/folder2/都不會渲染 – Trace

2

相反比使用301,你可以使用rel canonical link

+0

我這樣做以及我正在閱讀,這可能會更好地做到這兩個......這聽起來是對的 – Trace

+0

+1這個答案; @Tamer:我認爲(並且自己也使用它)規範鏈接將成爲一種方式,即使只是與其他重定向一起使用。 – stealthyninja

+0

兩者都是最好的,因爲一些搜索引擎可能不支持規範鏈接,但實際上只是一個規範鏈接將是好的。 –

0

你可以使用<不寒而慄>的mod_rewrite相反,如果它是一個Apache服務器...這是disasterously效率低,可能是最好的選擇,如果你正在煩惱的是SEO

+2

沒有關於爲什麼_mod_rewrite_是「災難性的低效率」的信譽良好的源的單一鏈接,我不知道爲什麼你在_answer_中拋棄了_comment_。 ಠ_ಠ – stealthyninja

+1

@stealthyninja對不起,這是一個公平的評論,我確實比這個更好...... mod_rewrite的問題在於:1)它必須至少在*每個*請求上評估一個正則表達式,被販運的網絡服務器,特別是共享的盒子,會消耗寶貴的CPU時間。 2)每個請求都通過mod_rewrite *至少運行兩次*,如果規則是由不是100%知道怎麼做的(參見[L]標誌),那麼有時更多的CPU需要更多的CPU。所有這些行爲都記錄在[在mod_rewrite文檔中](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)。 – DaveRandom