網頁如何以 301 Redirect 重導向
網站的管理中,有時會遇到需要對於網頁進行重新導向的情況,譬如:網站的內容調整、變更網頁的目錄結構、網頁遷移到一個新的位址、或者是網頁的附屬檔名變更,譬如把 .php 的網頁變成為 .html 或 .htm 。在這些情況下,若不做網頁的重導向,用戶的書籤、其他網頁的連結、或者是搜索引擎原先已索引的網址都會變成無法找到原有的網頁。訪問舊網址時會因而得到 404 查無資料的錯誤訊息。如此,當然會造成訪問流量的損失,甚至於網頁的位階也會受到影響。很難估計,究竟要花多久的時間,才能恢復舊觀。尤其是,有些網站可能註冊了許多網名,更是需要經由重導向的方式來使訪問不同網名的訪客,自動的轉讀主網名的網頁。
一般來說,常用的重導向的方法有: 301 redirect, 307 redirect 與 meta fresh:
- 301 redirect:301 重導向是一種永久性的 URL 轉移 (Permanently Moved)。對於搜索引擎而言,301重導向是網頁轉址的最好表達與操作方式。
- 307 redirect:307 重導向是一種暫時性的 URL 轉移 (Temporarily Moved )。很不幸,這種重導向的方式曾被用來做為欺騙搜索引擎作弊的手段之一。因此,目前若再採用 307 重導向的方式,很容易被引擎誤判為 spam 而被處罰。
- meta fresh:這種方式以前我很常用。是在網頁的 meta 指令中,指定一定的時間後轉址到新的網頁。但,我使用時不太瞭解指定的時間短過 5 秒之內,會有被引擎誤判為 spam 的危機。因而,吃了不少悶虧。
以上三種方式,我們只談 301 Redrict 的設定方式。
Apache Server 301 重導向的設定
在Apache中,有個很重要的檔案 .htaccess。管理過自己網站的管理員,很早就會接觸到這一檔案的使用需求。301重導向只是其諸多使用功能之一。
Redirect permanent / http://bbs.newdomain.com/ ;將主目錄下的內容重導向到 http://bbs.newdomain.com/
redirect permanent /old.html http://bbs.newdomain.com/new-url/ ;將 old.html 網頁重導向到 http://bbs.newdomain.com/new-url/
經由重導向參數的正規表達式(Regular Expressions),可完成更複雜的匹配。有興趣的朋友可參考 Apache 的手冊。
PHP下的301重導向
<? Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://bbs.newdomain.com” );?>
重新改寫過後,要確實的檢查是否都改對了。網路上有許多類似 Server Header 的檢查工具,如:
Check Server Headers Tool - HTTP Status Codes Checker
文章資訊
2007-05-22 00:28 貼出, 並編屬 : 搜尋排前, 網站位置的標示. 標籤 : 301-Redirect, Apache, 重定向, 重導向, 轉址, 搜索引擎
前一篇文 : 網址 URL 的規範化 (URL canonicalization) »
次一篇文 : WordPress 固定網址 (Permalinks) 的寫法 »













2007-05-22 07:16
[...] 以網站管理員的立場而言,能做的幾件事 : 站內的內部連結,要做到連結到各網頁的 URL 只使用一種網址。尤其是首頁,不論是否使用有 www 或沒用的。一旦選定了一種之後,從一而終的都只要使用一種。如此,搜索引擎才能明白那一個網址才是你的首頁的網址。 對於,外來的連結是你無法完全控制的。因為,我們實在無法控制別人如何寫你首頁的網址。唯一的辦法是,你可用 301 網頁重導向把各網址重新導向你所選定的首頁網址。 [...]
2007-05-22 12:13
好像應該 307 才是 temporary redirect 吧?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3
2007-05-22 13:33
謝謝指正.
網路上竟然有很多 302 redirect 的討論 ….
http://www.webmasterworld.com/forum30/28742-1-15.htm
2007-05-28 22:55
一直被這樣的問題困擾著,幸好看見了這篇文章 0rz
2007-06-25 13:24
请教一下,如果是使用微软IIS web server, 如何设置301 Redirect ? 又,如果是在程序中使用Redirect, 又属于那种Redirect? 例如:ASP:
谢谢帮忙回答。
2007-06-25 14:18
to MAX
微軟的東西我可也真是一向沒啥研究,
請參考這一個網頁
301 Redirect 永久重定向的实现
人家有很深入的說明 …