0

htaccess 如何做 301轉向(301 Redirect)

Posted in website 相關 at December 18th, 2007 / 瀏覽:3,200 人次 /

本篇文章來自於 搜索引擎优化SEO每天一贴 這個我覺得有很多不錯的文章的網站,原本是簡體中文的內容,本文引用自其中的一篇 301转向和网址规范化 ,原文引用的例子是一些網路上常見的範例,也夠完整,我只會多加上一些自己的需要,也在改 . htaccess的部分多了一點自己的內容 !!

301重新導向(301重新定向,301跳轉等等,英文是301 Redirect)是當用戶或搜索引擎向網站伺服器發出瀏覽的請求時,伺服器返回的 HTTP數據串流中的標頭訊息(header)中所包含狀態碼的一種,表示要求的這個網頁將永久性的轉移到另一個網址去。(其它常見的狀態碼還包括,200表示一切正常,404網頁找不到,302暫時轉向,等等。)

這裡補充一點,當你在主機供應商提供的網站工具 CPanel中,有一個功能 [ Redirects ]即為轉向功能,其中的 Permanent選項即是 301 Redirect,而另一個 Temporary選項就是 302 Redirect。

除了前面介紹過的網址規範化的問題外,還有很多情況站長是需要做網址轉向的情形的。

譬如說你擁有很多不同的多個網域名稱,例如:

mycompany.com,mycompany.net,mycompany.com.tw,mycompany.tw 都是你的公司的網域名稱,當然這些網域名稱都必須指向一個網站。如果你是以 mycompany.com這個當做你的主域名,那其它的網域名稱就必然要轉向到 mycompany.com這個地方來。

網址轉向方法主要包括:301轉向,302轉向,JavaScript轉向,PHP/ASP/CGI轉向,META REFRESH網頁META刷新等等。 302轉向可能會有 URL規範化問題。其它方法都是常用的用程式作弊的方式,用程式的方法本身沒有錯,但被作弊者用多了,搜索引擎對這些可疑的轉向都很敏感。不必冒這個險。

當網頁A用 301轉向到網頁B的時候,搜索引擎會肯定網頁A已經永久的改變位置,或者說實際上不存在了,搜索引擎就會把網頁B當作唯一有效的目標。這個好處是,第一,就不會有網址規範化的問題,第二,也很是重要的一點,網頁A的PR網頁級別會傳到網頁B去。

那要如何做 301轉向,如果你使用的是Unix/Linux主機,可以用直接的命令語法,這裡不對指令的方式多做說明,你可自行參考Unix/Linux相關的文件,通常你的主機權限也可能不容許你下相關的指令

回到一般網站最常發生的一個網址問題,就是有無 www開頭和首頁的 index.html問題,並且先下一個結論,使用沒有 www的網域名稱比有 www來的好(見仁見智,我的一個原因是Google爬我的 blog都是爬沒有 www的,也因為我的 blog一開始設定的時候也是沒有寫 www的)

例如本站的網址,使用這個 cocolike.com比用 www.cocolike.com 好,所以我們要解決的問題就是將

http://www.cocolike.com
http://www.cocolike.com/index.html
http://cocolike.com/index.html

這三個網址都重新用 301轉向到 http://cocolike.com,如此你用 301轉向把前三個 URL轉到 http://cocolike.com PR也就集中在這個網頁。

你可以在你的主機根目錄下看到這個檔案 . htaccess (小數點後無空格喔),如果沒有的話,請自己新建立一個,權限請設為 644即可,接著說明如何實現上述問題的 301轉向(以下皆以本站的 cocolike為例),打開這個檔案

將下列代碼加上即大功告成(你可以直接複製後貼上到你的 . htacccess)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.cocolike.com$ [NC]
RewriteRule ^(.*)$
http://cocolike.com/$1 [R=301,L]
rewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
rewriteRule ^index\.html$
http://cocolike.com/ [R=301,L]

說明: 先寫這句 RewriteEngine on綠字的部分會將所有指向 www.cocolike.com 的需求都用 301 redirect的方法轉向到 http://cocolike.com

紅字的部分則會將你目錄下的 index.html導到 /目錄下,意即 http://www.cocolike.com/index.html 和http://cocolike.com/index.html 都會轉向到 http://cocolike.com 去

如此一來上述的問題就獲得解決了^^

這裡只描述主機上的正確方式,使用程式的部分在這裡不做討論。其他的一些應用在 . htaccess設定檔案中 301 Redirect常用的語法,我會補一篇文章說明一下,因為我有這個需求而有所修改,就一起說明一下 !!

引用來源

作者: Zac@SEO每天一贴
原載: 中新虚拟主机 版權所有。

此文章發表於 website 相關

Leave a Reply

(若看不到驗證碼,請重新整理網頁。)

我的網站連結

好友網站連結

網誌統計

    文章數:442
    頁面數:5
    連結數:7
    評論數:476
    總字數:399694
    建站:2007年9月30日
    最早文章日期:2007-10-2
    最後更新日期:2008-10-2 12:06am
    Akismet:10532
  • 5 線上,
  • 30 同時最多,
  • 371646 累積人數