頁*面永久性移走(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對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/index.php?go=category_6(將網頁index.php重定向到http://www./index.php?go=category_6)
通過合理地配置重定向參數中的正則表達式,可以實現更復雜的匹配。有興趣的朋友可參考本站Apache手冊。
PHP下的301重定向
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www" );
exit;
?>
<html>
<head>
<title>HTTP/1.1 301 Moved Permanently</title>
</head>
<body>
HTTP/1.1 301 Moved Permanently
</body>
</html>
ASP下的301重定向
<%@ Language=VBScript %>
<%
1.Status="301 Moved Permanently"
2.AddHeader "Location","http://"
%>
ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
1.Status = "301 Moved Permanently";
2.AddHeader ("Location","http://www);
}
</script>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www."> 舊域*名重定向到新域*名
創建一個.htaccess文件,並將下面提供的代*碼寫入文件內,它可以確保舊域*名所有的目錄或者網頁正確的跳轉到新域*名內。
記住.htaccess文件一定要放在舊網站的根目錄下,並且新網站要和舊網站保持相同的目錄結構及網頁文件。
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www/$1 [R=301,L]
請將上面的wwwdomaincom修改成你想要跳轉到的域*名。
此外,我建議大家歸總舊網站的外部連接,並聯*系相應的站點修改導入連連的URL,以指向新站點。
注意:.htaccess文件只有在使用安裝有Mod Rewrite模塊的Apache作爲WEB服*務*器的Linux主機上才能起作用。
域*名301重定向到www的二級域*名
首先要知道,www.是domaincom域下的一個二級域*名。
301跳轉到www二級域的實現方*式:
創建一個.htaccess文件,並將下面提供的代*碼寫入文件內,它可以確保所有來自對domaincom的請求都轉向到對www進行請求。記住.htaccess文件一定要放在舊網站的根目錄下,並且新網站要和舊網站保持相同的目錄結構及網頁文件。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ [NC]
RewriteRule ^(.*)$ http://www./$1 [L,R=301]
請將上面的domaincom修改成你想要跳轉到的域*名。
注意:.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="^$" />
</conditions>
<action type="Redirect" url="http://www/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
將此web.config上傳到網站根目錄即可。別忘了把上面的domaincom換成你的域*名哦!
前提條件是:window主機的IIS版本必須是7.0或以上的。
在博*客中設置301的方法
這裏以Z-Blog爲例詳細介紹一下:
1.複製如下代*碼,將代*碼中”改成你自己的網*址。
if request.ServerVariables("SERVER_NAME")" then
1.Status="301 Moved Permanently"
2.AddHeader "Location", ""
3.End
end if
1.進入Z-Blog後臺,打開“文件管*理”界面。
2.找到並打開網站根目錄下的 default.asp 文件。
3.將以上代*碼加進 default.asp 在下圖中紅框所示位置。
4.最後確定無誤點擊--提交--保存。
三、檢測工*具
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.
四、運作流程
網站服*務*器響應網頁瀏覽請求的運作流程
讓我們先來了解一下用*戶/搜索*引擎和網站一開始的交互流程。當用*戶或搜索*引擎向一個網站服*務*器發出網頁瀏覽請求時,該服*務*器將:
通過域*名服*務*器(DNS)將域*名轉換爲網站的IP地*址,然後返回給客*戶;
打開一個該IP套接口連接;
記下通過該套接口的一個HTTP數據流;
從WEB服*務*器接收一個響應請求的HTTP數據流。該數據流包含狀態碼,狀態碼的值由HTTP協*議所決定。這裏所說的“HTTP數據流”信*息也叫“頭信 息(Header)”。頭信*息中包括了日期,服*務*器類型,通常還會有一條“200 OK”信*息。如果一切良好,那麼網絡服*務*器就會將“200 OK”信*息以及請求頁*面發送出去。如果網站在這時候已經建立了重定向,那麼服*務*器長春橋架廠就會在頭信*息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的響應信*息。搜索*引擎會根據服*務*器頭信*息中的內容作出決定。
什麼時候用301重定向
1.域*名到期了不想續費,想換個域*名。
2.在搜索*引擎的搜索結果中出現了不帶www的域*名,而帶www的域*名缺沒有收錄,這個時候我們就可以使用301重定向,來告訴搜索*引擎我們目標的域*名是哪一個。
3.空間服*務*器不穩定,換空間的時候。