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