域名定向
路由選擇的變化也是對數據報文經由路徑的一種重定向。
在我們網站建設中,時常會遇到需要網頁重定向的情況:像網站調整,改變了網站的目錄結構,網頁被移到一個新地址。或者網頁擴展名改變,如因套用需要把.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 %>
<%
Status="301 Moved Permanently"
AddHeader "Location","http://"
1.Status="301 Moved Permanently"
2.AddHeader "Location","http://"
%>
ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Status = "301 Moved Permanently";
AddHeader ("Location","http://www);
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
Status="301 Moved Permanently"
AddHeader "Location", ""
End
1.Status="301 Moved Permanently"
2.AddHeader "Location", ""
3.End
end if
進入Z-Blog後台,打開“檔案管理”界面。
找到並打開網站根目錄下的 default.asp 檔案。
將以上代碼加進 default.asp 在下圖中紅框所示位置。
5. 最後確定無誤點擊——提交——保存。
1.進入Z-Blog後台,打開“檔案管理”界面。
2.找到並打開網站根目錄下的 default.asp 檔案。
3.將以上代碼加進 default.asp 在下圖中紅框所示位置。
4.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.
運作流程
網站伺服器回響網頁瀏覽請求的運作流程
讓我們先來了解一下用戶/搜尋引擎和網站一開始的互動流程。當用戶或搜尋引擎向一個網站伺服器發出網頁瀏覽請求時,該伺服器將:
通過域名伺服器(DNS)將域名轉換為網站的IP位址,然後返回給客戶;
打開一個該IP套接口連線;
記下通過該套接口的一個HTTP數據流;
從WEB伺服器接收一個回響請求的HTTP數據流。該數據流包含狀態碼,狀態碼的值由HTTP協定所決定。這裡所說的“HTTP數據流”信息也叫“頭信息(Header)”。頭信息中包括了日期,伺服器類型,通常還會有一條“200 OK”信息。如果一切良好,那么網路伺服器就會將“200 OK”信息以及請求頁面傳送出去。如果網站在這時候已經建立了重定向,那么伺服器就會在頭信息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的回響信息。搜尋引擎會根據伺服器頭信息中的內容作出決定。
1.通過域名伺服器(DNS)將域名轉換為網站的IP位址,然後返回給客戶;
2.打開一個該IP套接口連線;
3.記下通過該套接口的一個HTTP數據流;
4.從WEB伺服器接收一個回響請求的HTTP數據流。該數據流包含狀態碼,狀態碼的值由HTTP協定所決定。這裡所說的“HTTP數據流”信息也叫“頭信息(Header)”。頭信息中包括了日期,伺服器類型,通常還會有一條“200 OK”信息。如果一切良好,那么網路伺服器就會將“200 OK”信息以及請求頁面傳送出去。如果網站在這時候已經建立了重定向,那么伺服器就會在頭信息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的回響信息。搜尋引擎會根據伺服器頭信息中的內容作出決定。
什麼時候用301重定向
1.域名到期了不想續費,想換個域名。
2.在搜尋引擎的搜尋結果中出現了不帶www的域名,而帶www的域名卻沒有收錄,這個時候我們就可以使用301重定向,來告訴搜尋引擎我們目標的域名是哪一個。
3.空間伺服器不穩定,換空間的時候。
301重定向和302跳轉浸染分解
做網站時我們常常傳說傳說傳聞301和302兩種跳轉編制,當然只要一個字元分歧可是對於查找引擎而言卻有著極大的分歧的處所。
個別我們一個舊的URL棄之不用了,不能就這么放著,而要經過一個跳轉,連結到新地址上,一來能夠傳遞權重,而來也能夠或許防止這個地址被查找引擎誤感觸死連結(地址失效)、或是304狀態碼即長時刻不更新(對應頁面還在但長時刻不更新)。前者對查找引擎來講無疑是有很壞影響的,而後者不做跳轉也影響不大。
當需要做跳轉的時候,有兩種能夠選擇。301和302。很多人感觸二者通用,實在不然。301跳轉對查找引擎是一種對照馴良的跳轉編制,也是查找引擎能夠遭遇的跳轉編制,它告訴查找引擎,這個地址棄用了,永遠轉向一個新地址。
可是302就不不異了。302是一種且則重定向,我們應當碰著過這樣一種表象,疇前經過查找引擎掀開一個小說頁面,可是彈出的功效卻是一個賣衣裳的商城網頁。這是一種很嚴重的作弊步履。此刻百度算法升級查找功效中也很少閃現這樣的頁面了,可是百度卻把這類且則重定向算作和劫持跳轉不異的步履。在查找引擎看來這實在是一種作弊。
所以當我們在做頁面跳轉的時分必定要正視,利用的不能夠是302重定向,而是301重定向。
注意事項
若準備將伺服器上的檔案移到其它地方時,須就以下信息正確地通知搜尋引擎的爬行程式:
1.若準備將伺服器上的檔案移到其它地方時,須就以下信息正確地通知搜尋引擎的爬行程式:
- 目標地址:這些檔案被移向何方
- 移動屬性:暫時移走還是永久性移走
對擁有多個域名的網站,專家建議應把那些不想在搜尋引擎上推廣的域名用301跳轉命令來永久性重定向。
1.對擁有多個域名的網站,專家建議應把那些不想在搜尋引擎上推廣的域名用301跳轉命令來永久性重定向。
正確方法
對於正確實施301重定向,有這樣幾個方法可供大家參考:
在.htaccess檔案中增加301重定向指令。
適用於使用Unix網路伺服器的用戶。通過此指令通知搜尋引擎的spider你的站點檔案不在此地址下,這是較為常用的辦法。形如:Redirect 301 / url。
適用於使用Window網路伺服器的用戶。在伺服器軟體的系統管理員配置區完成301重定向。
採用“mod_rewrite”技術。
1.在.htaccess檔案中增加301重定向指令。
2.適用於使用Unix網路伺服器的用戶。通過此指令通知搜尋引擎的spider你的站點檔案不在此地址下,這是較為常用的辦法。形如:Redirect 301 / url。
3.適用於使用Window網路伺服器的用戶。在伺服器軟體的系統管理員配置區完成301重定向。
4.採用“mod_rewrite”技術。
通過該技術進行的改變將在.htaccess檔案中體現出來,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond % ^yourdomaincom
RewriteRule ^(.*)$ http://www./$1 [R=permanent,L]
用ASP/PHP實現301重定向:
1.用ASP/PHP實現301重定向:
代碼在上面已經介紹過了。
看法建議
體會
對於所遭遇的問題Dan Thies深有體會,因為他也有過類似的遭遇。他的網站上有一個會員跟蹤腳本,其中一個會員的站點通過302命令映射到這個跟蹤腳本,而這個跟蹤腳本又是通過302映射到他的主頁。當在Google中用“keyword research”進行搜尋,他的主頁排名在前十位,然而地址顯示的卻是那個會員的網址。結果使他哭笑不得:訪問者通過Google搜尋結果進入他的網站,而他卻不得不為這些訪問量給那個會員支付報酬! 後來他用robots.txt檔案禁止Spiders跟蹤訪問他的會員跟蹤腳本才算解決了問題。
對於Dan Thies認為:“Google在302重定向"的處理上還存在一定的問題,但並不表示Google不允許302重定向。並未遭封或遭到懲罰,它們只是返回了錯誤的回響。”
如果使用了跟蹤URL/腳本,又必須讓訪問者重定向到某一著陸頁,那么一定要在robots.txt檔案中禁止Spiders去訪問第二個重定向。如果沒有對跟蹤URL/腳本進行重定向,而只是把另外一個URL上的內容給複製過來,那么應在robots.txt檔案中禁止Spiders去訪問跟蹤URL,以防因內容重複而遭搜尋引擎懲罰。
經驗談
一個多域名站主的經驗之談:
“我只有一個網站淘星,主域名是,此外還有諸如等總計十幾個域名。所有這些次級域名都映射到,而且所有域名對應的是同一個IP位址。由於事實上我只有一個站點,一個站點又只能對應一個.htaccess檔案,顯然不可能直接修改.htaccess檔案來實現重定向。我採用了如下步驟:
把domain1com從domaincom上獨立出來,讓它成為伺服器上的一個普通獨立網站。
為domain1com創建一個.htaccess文本檔案,並在檔案中設定重定向代碼為:
1.把domain1com從domaincom上獨立出來,讓它成為伺服器上的一個普通獨立網站。
2.為domain1com創建一個.htaccess文本檔案,並在檔案中設定重定向代碼為:
Redirect permanent /
再將修改後的.htaccess檔案上傳給所在伺服器。
這一步也可以在域名控制臺中完成。
進入域名控制臺,將所有原來綁定到上的域名從上釋放,然後重新綁定到。這樣一來,這些被綁定的域名使用的都是的.htaccess檔案,因而也就意味著它們都被永久性重定向到上了。好了,大功告成! 就這么容易!
重定向有一個更快捷的辦法,但是如果你的網站租用的是虛擬主機的話,需要空間商支持的,如果是伺服器那就好辦了,打開IIS,在默認站點(或者不是默認站點也可以)建立一個新網站,記得域名和IP要填對,比如你要把重定向到w的主域名或者不帶3w的一級域名中,你記得這個net的對應綁定的IP一定要選對,然後下一步就隨便選定一個資料夾 其他都不要管 建立好了之後 按如下圖片所示操作即可。
1.進入域名控制臺,將所有原來綁定到上的域名從上釋放,然後重新綁定到。這樣一來,這些被綁定的域名使用的都是的.htaccess檔案,因而也就意味著它們都被永久性重定向到上了。好了,大功告成! 就這么容易!
2.重定向有一個更快捷的辦法,但是如果你的網站租用的是虛擬主機的話,需要空間商支持的,如果是伺服器那就好辦了,打開IIS,在默認站點(或者不是默認站點也可以)建立一個新網站,記得域名和IP要填對,比如你要把重定向到w的主域名或者不帶3w的一級域名中,你記得這個net的對應綁定的IP一定要選對,然後下一步就隨便選定一個資料夾 其他都不要管 建立好了之後 按如下圖片所示操作即可。
記得一定要勾選“資源的永久重定向”,否則會被搜尋引擎視為302暫時性跳轉處理
然後你就成功了,如果出現下圖所示的話,那就真的成功了喔親!
最佳化意義
1、網站改版完成,先將新版上線,線上上保持一段時間新舊內容共存。
2、新舊內容同時存在一段時間,且新版內容已開始收錄後,對新舊內容設定301跳轉,將舊版內容指向新版對應內容。
3、301重定向有利於網站首選域的確定,對於同一資源頁面多條路徑的301重定向有助於URL權重的集中。
按照上述操作方式在現有情況下能夠儘可能的降低網站因改版帶來的流量損失,提高用戶體驗度,同時有利於網站最佳化。