-
301永久重定向
鎖定
- 中文名
- 301永久重定向
- 外文名
- 301 redirect
- 屬 性
- “自動轉向”技術
- 常用方式
- 301,302redirect, meta fresh
- 應 用
- 網站建設
301永久重定向定義
301永久重定向:這是SEO中的一個基礎名詞,在URL規範化中會用到,也許大家都知道這個名詞,但是由於應用的不是非常頻繁,導致很多專業做SEO的朋友都不是很熟悉301永久重定向的具體操作方法,下面闡述的是301永久重定向的理論,以及實際的操作方法。
301永久重定向作用
301永久重定向是所有的重定向方法中一種符合搜索引擎規則的重定向方法,其他的重定向還包括302暫時重定向和JS跳轉等,這些方式都容易導致URL不規範問題的產生。所以説如果你有多個域名都希望可以讓他們訪問同一個網站,那就只能將其中一個做為主域名,剩下的其他域名做301永久重定向到這個主域名,只有這樣才可以讓多個域名都訪問一個站點,不會產生重複收錄,導致網站被懲罰的現象
301永久重定向執行方法
在windows主機上設置的方法
可以在IIS服務器上設置也可以在代碼中設置。
1、在IIS服務器上設置301的方法
這種設置方法需要有一個先天條件,那就是你有服務器的管理權,你可以直接操作IIS服務器,並且可以隨意開通新的虛擬主機,否則你只能用修改網站代碼的方法。
首先開通一個新的虛擬主機,將你需要做301永久重定向的域名正常與該空間綁定,這個綁定的方法你可以諮詢服務器託管商。
然後打開“控制面板”→找到“管理工具”→打開“Internet 信息服務”。打開後,可以在管理器左側樹形菜單中找到你的網站,然後右擊選擇“屬性”,打開網站的屬性管理面板,並且選擇到“主目錄”選項卡,選擇“重定向到URL”,然後在地址框中輸入“主域名”,然後將選項卡中的“資源的永久重定向”選擇上,點擊確定即可設置完畢。
[2]
2、在網站代碼中設置301的方法
只需要將以下代碼加在網頁的開頭即可,不過只能用在ASP和PHP文件中,HTML無法通過代碼設置301。
ASP代碼: !
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently" Response.AddHeader "Location" , " http://www.###.com"
%>
PHP代碼:
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.###.com” );
?>
注:將我的網址替換成你自己的定向後的目標網址即可,所有的標點必須用英文半角。
3、在博客中設置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 在圖1中紅框所示位置。
在Unix/Linux主機上設置的方法
可以用.htaccess文件
1. Apache模塊 mod_alias的 Redirect 和 RedirectMatch命令
上面提到2個命令使用方法相似。而區別就是後者RedirectMatch基於正則表達式匹配對當前的URL發送一個外部重定向語法為:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status參數可以使用以下HTTP狀態碼:
permanent
返回一個永久性重定向狀態碼(301),表示此資源的位置變動是永久性的。
temp
返回一個臨時性重定向狀態碼(302),這是默認值。
seeother
返回一個“參見”狀態碼(303),表示此資源已經被替代。
gone
返回一個“已廢棄”狀態碼(410),表示此資源已經被永久性地刪除了。如果指定了這個狀態碼,則URL參數將被忽略。
舉例:
Redirect 301 /old/old.htm http://www.###.com/new.htm Redirect permanent /one http://###.com/two RedirectMatch 301 (.*).gif$ http://www.###.com/images/$1.jpg |
2.使用mod_rewrite重寫URL方式
APACHE
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^####.comRewriteRule ^(.*)$ http://www.###.com/$1 [R=permanent,L] |
在這裏判斷當前服務器變量HTTP_HOST是否等於###.com,為真就進行重寫,按照R=permanent進行永久重定向,L表示並立即停止重寫操作,並不再應用其他重寫規則
下面是最終實現的.htaccess文件,同時也併入wordpress重寫規則。
APACHE
# BEGIN WordPress RewriteEngine On #Redirect Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^###.com$ RewriteCond %{HTTP_HOST} !^$ RewriteRule ^(.*)$ http://www.###.com/$1 [R=301,L] #Rewrite(blog) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blog/.* /blog/index.php [L] RewriteRule . - # END WordPress |
301永久重定向運作流程
讓我們先來了解一下用户,搜索引擎和網站一開始的交互流程。當用户或搜索引擎向一個網站服務器發出網頁瀏覽請求時,該服務器將:
1.通過域名服務器(DNS)將域名轉換為網站的IP地址,然後返回給客户
2.打開一個該IP套接口連接
3.記下通過該套接口的一個HTTP數據流
4.從WEB服務器接收一個響應請求的HTTP數據流,該數據流包含狀態碼,狀態碼的值由HTTP協議所決定。這裏所説的“HTTP數據流”信息也叫“頭信息(Header)”。頭信息中包括了日期,服務器類型,通常還會有一條“200 OK”信息。如果一切良好,那麼網絡服務器就會將“200 OK”信息以及請求頁面發送出去。如果網站在這時候已經建立了重定向,那麼服務器就會在頭信息中包含一個“302 Moved Temporarily”或“301 Moved Permanent”之類的響應信息。搜索引擎會根據服務器頭信息中的內容作出決定。
[1]
- 參考資料
-
- 1. 301永久性重定向和302臨時性重定向 .CSDN[引用日期2019-03-04]
- 2. 本刊編輯x.IIS服務器下做301永久重定向設置方法:計算機與網絡,2014(1):44-44.