301重定向-頁面永久性移走是一種非常重要的“自動轉向”技術。網址重定向最為可行的一種辦法。當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。

域名的重定向 路由選擇的變化也是對數據報文經由路徑的一種重定向。
在我們網站建設中,時常會遇到需要網頁重定向的情況:像網站調整,改變了網站的目錄結構,網頁被移到一個新地址。或者網頁擴展名改變,如因應用需要把.php改成.Html或.shtml,在這些情況下,如果不做重定向,則用戶收藏夾或搜索引擎數據庫中舊地址只能讓訪問客戶得到一個404頁面錯誤信息,訪問流量白白喪失。又比如某些注冊了多個域名的網站,也需要通過重定向讓訪問這些域名的用戶自動跳轉到主站點,等等。
常用的重定向方式有: 301 redirect, 302 redirect 與 meta fresh:
301 redirect::301代表永久性轉移(Permanently Moved),301重定向是網頁更改地址后對搜索引擎友好的最好方法,只要不是暫時搬移的情況,都建議使用301來做轉址。
302 redirect::302代表暫時性轉移(Temporarily Moved ),在前些年,不少Black Hat SEO曾廣泛應用這項技術作弊。目前,各大主要搜索引擎均加強了打擊力度,像Google前些年對business.com以及近來對BMW德國網站的懲罰。即使網站客觀上不是spam,也很容易被搜尋引擎誤判為spam而遭到懲罰。
meta fresh: 這在2000年前比較流行,不過現在已很少見。它具體是通過網頁中的meta指令,在特定時間后重定向到新的網頁,如果延遲的時間太短(約5秒之內),會被判斷為spam。
IIS服務器實現301重定向
打開internet信息服務管理器,在欲重定向的網頁或目錄上按右鍵 ,選擇“重定向到URL”,
此處以重定向到百度為例
* 在“重定向到”輸入框中輸入要跳轉到的目標網頁的URL地址
* 選中“資源的永久重定向”(切記)
* 最后點擊“應用”
Apache服務器實現301重定向
相比較來說,Apache實現起來要比IIS簡單多了。在Apache中,有個很重要的文件.htaccess,通過對它的設置,可以實現很多強大的功能,301重定向只是其中之一。
redirect permanent /index.php http://www.668suv.com/index.php?go=category_6(將網頁index.php重定向到http://www.668suv.com/index.php?go=category_6)
通過合理地配置重定向參數中的正則表達式,可以實現更復雜的匹配。有興趣的朋友可參考本站Apache手冊。
PHP下的301重定向
<html>
<head>
<title>HTTP/1.1 301 Moved Permanently</title>
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: www.668suv.com" );
?>
</head>
<body>
HTTP/1.1 301 Moved Permanently
</body>
</html>[2]
ASP下的301重定向
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.668suv.com"
%>
ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.668suv.com");
}
</script>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.668suv.com"> 舊域名重定向到新域名
創建一個.htaccess文件,并將下面提供的代碼寫入文件內,它可以確保舊域名所有的目錄或者網頁正確的跳轉到新域名內。
記住.htaccess文件一定要放在舊網站的根目錄下,并且新網站要和舊網站保持相同的目錄結構及網頁文件。
Options +FollowSymLinks RewriteEngine on
RewriteRule (.*) http://www.668suv.com/$1 [R=301,L]
請將上面的www.668suv.com修改成你想要跳轉到的域名。
此外,我建議大家歸總舊網站的外部鏈接,并聯系相應的站點修改導入鏈鏈的URL,以指向新站點。
注意:.htaccess文件只有在使用安裝有Mod Rewrite模塊的Apache作為WEB服務器的Linux主機上才能起作用。
域名301重定向到www的二級域名
首先要知道,www.668suv.com是domain.com域下的一個二級域名。
301跳轉到www二級域的實現方式:
創建一個.htaccess文件,并將下面提供的代碼寫入文件內,它可以確保所有來自對domain.com的請求都轉向到對www.668suv.com進行請求。記住.htaccess文件一定要放在舊網站的根目錄下,并且新網站要和舊網站保持相同的目錄結構及網頁文件。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.668suv.com/$1 [L,R=301]
請將上面的domain.com和www.668suv.com修改成你想要跳轉到的域名。
注意:.htaccess文件只有在使用安裝有Mod Rewrite模塊的Apache作為WEB服務器的Linux主機上才能起作用。
ASP下使用web.config來實現301重定向
如果網站根目錄沒有web.config就新建一個文本文檔,保存成web.config即可,代碼如下:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^dxb2b.com$" />
</conditions>
<action type="Redirect" url="http://www.668suv.com/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
將此web.config上傳到網站根目錄即可。別忘了把上面的dxb2b.com換成你的域名哦!
前提條件是:window主機的IIS版本必須是7.0或以上的。
在博客中設置301的方法
這里以Z-Blog為例詳細介紹一下:
1. 復制如下代碼,將代碼中“###.com”改成你自己的網址。
if request.ServerVariables("SERVER_NAME")="###.com" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.###.com"
Response.End
end if
2. 進入Z-Blog后臺,打開“文件管理”界面。
3. 找到并打開網站根目錄下的 default.asp 文件。
4. 將以上代碼加進 default.asp 在下圖中紅框所示位置。
5. 最后確定無誤點擊——提交——保存。
301重定向是在搜索引擎優化中一個很常用的操作,可以幫助我們轉移域名的權重。但是在做301重定向的時候由于服務器系統、網站程序語言、域名和鏈接地址的不同,使用的方法也不同。這個時候我們就要使用301重定向檢測工具,來檢測我們的301重定向是否成功。
HttpWatch檢測工具
HttpWatch是強大的網頁數據分析工具,集成在Internet Explorer工具欄。包括網頁摘要、Cookies管理、緩存管理、消息頭發送/接受、字符查詢、報告輸出、POST 數據和目錄管理功能。
在IE工具欄中 查看——瀏覽器欄——httpwatch 打開,也可以使用快捷鍵shift+F2打開。
狀態為:301狀態 從demo1.php 成功301跳轉到demo9.php ,驗證301重定向設置成功。
Chinaz站長工具
chinaz站長工具是業內有名的站長工具。其功能非常豐富,點擊http狀態碼查詢,輸入網址,可以查詢出網站的http狀態碼,確保是301而不是302.