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