本文將通過IIS、APACHE、ASP、PHP幾種伺服器端或頁面程式端分別講解如何設定301重新導向,先還是簡單介紹下重新導向。
301重新導向:指的是一種非常重要的“自動轉向”技術--其實談不上技術,即網址重新導向--使用者訪問一個地址或目錄,可以指定跳轉到另一個地址。
301重新導向,這是所有重新導向方法中唯一符合seo/seo.html" target="_blank">搜尋引擎規則的重新導向,這也是SEO中的一個基礎名詞,比方:一個站用www.111cn.net、111cn.net綁定,就會存在2個權重,如果將111cn.net重新導向到www.111cn.net,就會權重集中,相應增加權重值。
1、IIS伺服器上設定301重新導向
準備工作:你要有伺服器設定許可權,可以隨意開通新的虛擬空間!
第一,建立一個虛擬空間,將你需要進行重新導向的網域名稱與之解析綁定;
第二,我的電腦-->開啟“控制台”-->“管理工具”-->開啟“Internet 資訊服務”,左側會有樹形菜單,找到你的網站--右鍵“屬性”--選擇“主目錄”選項卡,再選擇“重新導向到URL”,然後在地址框欄輸入需要定向的目標網域名稱,最後將選項卡中的“資源的永久重新導向”選擇上,點擊“確定”完成操作。屬性介面設定,如下圖所示:
2、Unixhttp://www.111cn.net/linux主機上apache設定301重新導向
建立.htaccess檔案,輸入下列內容(需要開啟mod_rewrite):
1)將不帶WWW的網域名稱轉向到帶WWW的網域名稱下
| 代碼如下 |
複製代碼 |
|
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^111cn.net [NC]
RewriteRule ^(.*)$www.111cn.net/301/[L,R=301]
|
2)重新導向到新網域名稱
| 代碼如下 |
複製代碼 |
|
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$www.111cn.net/301/ [L,R=301]
|
3)使用正則進行301轉向,實現偽靜態
| 代碼如下 |
複製代碼 |
|
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^article-(.+).html$ article.php?id=$1
將article.php?id=123這樣的地址轉向到article-123.html
|
3、ASP程式頁面中設定301重新導向代碼
在公用頭部檔案或全域調用檔案裡,加上如下代碼:
| 代碼如下 |
複製代碼 |
<%@ Language=VBScript %>
<%
if request.ServerVariables("SERVER_NAME")!="www.111cn.net" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.111cn.net"
Response.End
end if
%>
|
原理:判斷請求的server_name,是否與主目標網址一樣,不一樣則重新導向
4、PHP程式頁面中設定301重新導向
代碼如下:(比較完美的寫法)
| 代碼如下 |
複製代碼 |
$host= 'www.111cn.net'; //你目標定向的網址 if ($_SERVER['HTTP_HOST'] != $host)//若不是則進行重新導向,後面頁面參數不變 { header("HTTP/1.1 301 Moved Permanently"); header("Location: http://{$host}{$_SERVER[REQUEST_URI]}"); } unset($host); |
原理:首先定義目標定向網址,然後判斷當前請求訪問的host是否一致,若為否,則進行重新導向