301重定向是每個做優化的小伙伴都會遇到的問題,用的好的話網站排名可以提升,用的不好的話網站沒有排名,本文從什么是301重定向?如何做301重定向?什么時候應該使用301?做301重定向的注意事項?301和302的區別是什么這些方面給大家好好聊聊301重定向,希望本文對大家有幫助。
一 什么是301重定向
當站長想要在網頁內容不變的情況下,將其從一個URL轉移到另一個url上,就可以使用301重定向。隨之轉移的還有頁面權重,流量,搜索引擎的索引也會對其更新。
三 如何做301重定向
①:虛擬主機
Linux虛擬主機設置301跳轉方法:
在本地新建一個文本文件,最好用的專業的編輯器軟件如EditPlus 將代碼粘入
RewriteEngine On RewriteCond %{HTTP_HOST} !^http://m.allianceaerosystems.com$ [NC] RewriteRule ^(.*)$ http://m.allianceaerosystems.com/$1 [R=301,L]
說明:上述規則是將站點所以訪問域名都重定向到m.allianceaerosystems.com(規則中的域名請修改為自己的域名),如果僅想將綁定在站點上某個域名(如:www.123.com)重定向到m.allianceaerosystems.com,規則如下:
RewriteCond %{HTTP_HOST} ^http://www.123.com$ [NC] RewriteRule ^(.*)$ http://m.allianceaerosystems.com/$1 [R=301,L]
如果有多種需求,如http://easyqi.cn跳轉到m.allianceaerosystems.com qwe.com跳轉到www.qwe.com,規則如下:
RewriteEngine On RewriteCond %{HTTP_HOST} ^http://easyqi.cn$ [NC] RewriteRule ^(.*)$ http://m.allianceaerosystems.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^http://qwe.com$ [NC] RewriteRule ^(.*)$ http://www.qwe.com/$1 [R=301,L]
根據自己的需要進行添加修改,然后上傳到服務器wwwroot目錄,改名為.htaccess即可
win虛擬主機設置301跳轉方法:
手動設置的(沒有自動生成)
1、進入主機控制面板,進入ISAPI篩選器設置,點擊"開啟自定義URL靜態化支持"按鈕。
2、待開啟偽靜態功能后,進入FTP文件管理,找到\others\discuz\httpd.conf 修改這里面的規則。
3、示例代碼:
RewriteCond %{HTTP:Host} ^http://easyqi.cn$ RewriteRule (.*) http://m.allianceaerosystems.com$1 [NC,R=301]
#第一條表示要做跳轉的域名,第二條表示要跳轉到的域名
#如果有很多域名要做跳轉,那么可以將第一條規則改為
RewriteCond %{HTTP:Host} !^http://m.allianceaerosystems.com$
這樣,就表示非m.allianceaerosystems.com的域名訪問都會跳轉到m.allianceaerosystems.com #多個域名做跳轉的第二種方法是,首先復制多個 RewriteCond 項,將域名改好 除了最后一項,其余的 RewriteCond 項最后都要加個參數 [OR]即可。
注意:現在很多虛擬主機都自帶301的配置,可以在主機控制面板上生成代碼信息,然后按照上面的提示進行301重定向。
②:window獨立服務
Win獨立服務301設置(win2003、win2008):
1、IIS服務器實現301重定向
打開IIS,右鍵-屬性-網站-IP地址那里點編輯增加一個站點,然后綁定一下主機頭,也可以綁定更多的閑置域名。
打開IIS,首先新建立一個站點,隨便對應一個目錄E:\wwwroot\301web。該目錄下只需要2個文件,一個 default.html,一個404.htm。在欲重定向的網頁或目錄上按右鍵;選中“重定向到URL”;在對話框中輸入目標頁面的地址;切記,記得選 中“資源的永久重定向”;然,最后要點擊“應用”,完成。
③:Linux獨立服務器
Linux獨立服務器301設置(紅帽企業版、centos):
我用的是紅帽企業版,用的是源碼包裝的Web環境。然后我進入Linux服務器,找到apache的主配置文件 httpd.conf , 我的apache服務器下有多個虛擬主機,我找到我要做301重定向的虛擬主機,然后添加如何的代碼(代碼是完整的):
1、進入Linux服務器,然后找到httpd.conf的Apache 主配置文件,下圖紅色框是我所在的完整位置,藍色框是內容,也就是命令pwd現實所在位置,ls查詢當前位置的內容。
既然找到主配置文件了,我們通過命令vi httpd.conf 編輯一下,在最后添加如下完整的代碼。要找到配置的那個虛擬主機然后添加代碼, 不要亂添加。
ServerName m.allianceaerosystems.com ServerAdmin webmaster@dummy-host.example.com LogLevel warn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common ServerName http://easyqi.cn ServerAdmin webmaster@dummy-host.example.com RewriteEngine on RewriteRule ^(.*)$ http://m.allianceaerosystems.com$1 [R=301,L] LogLevel warn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common
注意:不同形式安裝的apache 其路徑是不同的,有源碼包、有YUM等安裝方式,兩種馬路是不一樣的,建議新手聯系空間商并實施301重定向。
④:綁定/本地DNS
如果具有對本地DNS記錄進行編輯修改的權限,則只要添加一個記錄就可以解決此問題。若無此權限,則可要求網站托管服務商對DNS服務器進行相應設置。
⑤:DNS服務器的設置
若要將http://blog.easyqi.cn指向m.allianceaerosystems.com,則只需在DNS服務中應增加一個別名記錄,可寫成:blog IN CNAME m.allianceaerosystems.com。
如需配置大量的虛擬域名,則可寫成:* IN CNAME m.allianceaerosystems.com.
這樣就可將所有未設置的以http://easyqi.cn結尾的記錄全部重定向到m.allianceaerosystems.com上。
二 什么時候應該使用301
1.網站url改版
當網站需要大面積修改URL而內容不變,就可以使用301重定向,將原本網頁的權重和流量一起轉移
2.刪除舊頁面
網站上存在的一些過期頁面可能依然還有流量和權重,那就可以使用301重定向,將舊頁面定位到新頁面上
3.網站url不規范
網站默認的url通常包括以下幾種
http://easyqi.cn http://m.allianceaerosystems.com http://easyqi.cn/index.html http://m.allianceaerosystems.com/index.html
但是為了網址的規范化和權重的集中,應該保證全站只有一種url格式。如果其他格式的url被搜索引擎收錄,就需要將不規范網站301重定向到規范網址上。
四 做301重定向的注意事項
當301重定向實施完之后,舊版本頁面跳轉到了新版本頁面,或網址規范化了再或者其他的,大部分的站長都不會注意到301的HTTP狀態是否返回成功。就在此時,可能有些網站的301重定向不傳遞狀態或者出現404錯誤的狀態碼,這樣容易造成任何情況下做的301重定向無法達到效果。筆者認為,想要正確的、有效果的做301重定向,一些細節還是需要注意的。
例如:404錯誤(頁面未找到)或者200 OK(頁面成功加載);301(返回301狀態碼成功)
總結上述需要注意:如果遇到這種情況也是一個被重視的問題,所以要避免這樣的問題發生,如果站長在做301永久重定向后,一定要確保HTTP狀態是返回301,如果HTTP狀態碼不是返回的301狀態碼而是200或404再或者是其他的狀態碼,那么301重定向應該未操作成功,建議站長檢查是哪點出的問題然后解決。
301永久重定向首頁索引文件,如何避免出現循環
做優化的站長都應該知道,絕大部分網站的首頁URL都是以http://m.allianceaerosystems.com/index.html的形式表現,但一般都是輸入http://www.admin5.cn/訪問首頁。而此時首頁出現了兩個的版本的URL,給網站帶來的影響則是分散鏈接權重。可能有站長會想到網址規范化。是的,沒錯,通過網址規范化即可實現一個標準的URL表現形式。
大部分的站長看到這種情況都會通過301永久重定向將http://m.allianceaerosystems.com/index.html重定向到http://www.admin5.cn/上,然后通過301永久重定向修復URL。但是,如果站長沒有正確的實施301重定向,通常301重定向的問題會擴大,比如出現死循環現象。
默認文檔重定向解決方案:
①:將index.php的內容復制到另外一個文件,比如a.php文件。
②:為文檔目錄創建一個Apache DirectoryIndex 指令,將該質量的目標設置為a.php,不要在全服務器級別上設置該指令;否則,它可能造成其他仍然需要使用index.php作為目錄索引的文件夾的問題。
③:在文檔根目錄下的.htdaccess文件中放入:DirectoryIndex a.php 或者,如果不使用各個目錄中單獨的上下文文件,可以在.htdaccess中放入以下內容:DirectoryIndex a.php
④:清除原始index.php文件內的內容,插入如下代碼:
總結上述需要注意:這樣的設置讓index.php不再是目錄索引文件,也就是默認文件名。它在用戶輸入規范URLhttp://m.allianceaerosystems.com/時會強制讀取a.php,那么任何從舊鏈接到index.php的請求現在都進行了301重定向然后避免無限循環
六 301重定向和302重定向的區別
重定向的方法其實是有很多的,但不同的方法會出現不同的結果,而且區別也是非常大的。目前,根據WEB服務器返回給瀏覽器的HTTP狀態碼,重定向主要分為301永久重定向、302臨時重定向,兩種重定向是根據不同情況來做的,下面就詳細的對兩種重定向詳細的說明一下。
①:301永久重定向
首先,301永久重定向。這個狀態碼告訴用戶、搜索引擎、瀏覽器,該資源已經永久性的移動到另一個位置(舊版本頁面永久重定向到新版本頁面),而且沒有恢復原位的打算。301永久重定向最適合目錄轉移,推薦使用301重定向!
②:302臨時重定向
然后,302臨時重定向。這個狀態碼告訴用戶、搜索引擎、瀏覽器,該資源已經暫時性的移動到另外一個位置(舊版本頁面臨時重定向到新版本頁面),這種移動不會當作永久性,而且會恢復原來的位置,但一些情況下適合使用302重定向。
302重定向對手機站優化是有一定的好處,百度官方給的建議:比如減少內容死鏈,如果沒有內容,最好通過HTTP狀態碼指定,如404、403等;如果內容死鏈希望重定向到首頁,最好通過302跳轉,不要使用javascript跳轉。此時可以發現302重定向對手機站優化是有好處的。
注意:兩種形式的重定向都會將用戶、搜索引擎發送到新的位置(頁面),但搜索引擎對待這兩個HTTP狀態碼卻不同。當搜索引擎看到301狀態碼的時候,會判斷舊版本頁面將權重或任何其他的指標永久轉移到新頁面。當搜索引擎看到302HTTP狀態碼的時候,會假設它不應該將舊頁面的歷史鏈接跟權重轉移到新的頁面,意思是轉移后還是會轉移回來的。另外,如果做301永久重定向,會導致搜索引擎從索引上(百度、谷歌)刪除舊頁面并用新頁面代替。