關於301重定向--對301跳轉的瞭解(上)

  頁*面永久性移走(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.空間服*務*器不穩定,換空間的時候。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章