HTTP返回碼中301跳轉(zhuǎn)和302跳轉(zhuǎn)的區(qū)別
HTTP 返回碼中301跳轉(zhuǎn)和302跳轉(zhuǎn)的區(qū)別昨天逛論壇看到有人提到302跳轉(zhuǎn)被降權(quán)的問題,本人一直以來(lái)只接觸過(guò)301重定向,因此對(duì)302跳轉(zhuǎn)知之甚少。今天刻意收集了一些資料,這里永孚科技小編就整理一
HTTP 返回碼中301跳轉(zhuǎn)和302跳轉(zhuǎn)的區(qū)別
昨天逛論壇看到有人提到302跳轉(zhuǎn)被降權(quán)的問題,本人一直以來(lái)只接觸過(guò)301重定向,因此對(duì)302跳轉(zhuǎn)知之甚少。今天刻意收集了一些資料,這里永孚科技小編就整理一下,分享給還不太清楚它們的區(qū)別及含義的站長(zhǎng)朋友們。
一、官方說(shuō)法
301,302 都是HTTP 狀態(tài)的編碼,都代表著某個(gè)URL 發(fā)生了轉(zhuǎn)移,不同之處在于:
301 redirect: 301 代表永久性轉(zhuǎn)移(Permanently Moved)。
302 redirect: 302 代表暫時(shí)性轉(zhuǎn)移(Temporarily Moved )。
這是很官方的說(shuō)法,那么它們的區(qū)別到底是什么呢?
二、現(xiàn)實(shí)中的差異
1. 對(duì)于用戶
301,302對(duì)用戶來(lái)說(shuō)沒有區(qū)別,他們看到效果只是一個(gè)跳轉(zhuǎn),瀏覽器中舊的URL 變成了新的URL 。頁(yè)面跳到了這個(gè)新的url 指向的地方。
2. 對(duì)于引擎及站長(zhǎng)
302:
302轉(zhuǎn)向可能會(huì)有URL 規(guī)范化及網(wǎng)址劫持的問題。可能被搜索引擎判為可疑轉(zhuǎn)向,甚至認(rèn)為是作弊。
網(wǎng)址規(guī)范化
請(qǐng)參見:
網(wǎng)址劫持
302重定向和網(wǎng)址劫持(URL hijacking )有什么關(guān)系呢?這要從搜索引擎如何處理302轉(zhuǎn)向說(shuō)起。從定義來(lái)說(shuō),從網(wǎng)址A 做一個(gè)302重定向到網(wǎng)址B 時(shí),主機(jī)服務(wù)器的隱含意思是網(wǎng)址A 隨時(shí)有可能改主意,重新顯示本身的內(nèi)容或轉(zhuǎn)向其他的地方。大部分的搜索引擎在大部分情況下,當(dāng)收到302重定向時(shí),一般只要去抓取目標(biāo)網(wǎng)址就可以了,也就是說(shuō)網(wǎng)址B 。
實(shí)際上如果搜索引擎在遇到302轉(zhuǎn)向時(shí),百分之百的都抓取目標(biāo)網(wǎng)址B 的話,就不用
,擔(dān)心網(wǎng)址URL 劫持了。
問題就在于,有的時(shí)候搜索引擎,尤其是Google ,并不能總是抓取目標(biāo)網(wǎng)址。為什么呢?比如說(shuō),有的時(shí)候A 網(wǎng)址很短,但是它做了一個(gè)302重定向到B 網(wǎng)址,而B 網(wǎng)址是一個(gè)很長(zhǎng)的亂七八糟的URL 網(wǎng)址,甚至還有可能包含一些問號(hào)之類的參數(shù)。很自然的,A 網(wǎng)址更加用戶友好,而B 網(wǎng)址既難看,又不用戶友好。這時(shí)Google 很有可能會(huì)仍然顯示網(wǎng)址A 。
由于搜索引擎排名算法只是程序而不是人,在遇到302重定向的時(shí)候,并不能像人一樣的去準(zhǔn)確判定哪一個(gè)網(wǎng)址更適當(dāng),這就造成了網(wǎng)址URL 劫持的可能性。也就是說(shuō),一個(gè)不道德的人在他自己的網(wǎng)址A 做一個(gè)302重定向到你的網(wǎng)址B ,出于某種原因, Google 搜索結(jié)果所顯示的仍然是網(wǎng)址A ,但是所用的網(wǎng)頁(yè)內(nèi)容卻是你的網(wǎng)址B 上的內(nèi)容,這種情況就叫做網(wǎng)址URL 劫持。你辛辛苦苦所寫的內(nèi)容就這樣被別人偷走了
301:
當(dāng)網(wǎng)頁(yè)A 用301重定向轉(zhuǎn)到網(wǎng)頁(yè)B 時(shí),搜索引擎可以肯定網(wǎng)頁(yè)A 永久的改變位置,或者說(shuō)實(shí)際上不存在了,搜索引擎就會(huì)把網(wǎng)頁(yè)B 當(dāng)作唯一有效目標(biāo)。
301的好處是:
1. 沒有網(wǎng)址規(guī)范化問題。
2. 也很重要的,網(wǎng)頁(yè)A 的PR 網(wǎng)頁(yè)級(jí)別會(huì)傳到網(wǎng)頁(yè)B 。
三、Apache 中實(shí)現(xiàn)301、302
方法一:url rewrite,mod_rewrite
Rewriteengine on
RewriteCond {HTTP_HOST} ^cmp.soso.com [NC]
RewriteRule ^/js/(.*) http://www.soso.com/js/$1 [R=301]
ServerName cmp.soso.com
將cmp.soso.com 中js 目錄的下所有訪問重定向到http://www.soso.com/js/,指定跳轉(zhuǎn)返回碼為301。
對(duì)于[R=301]的詳解:
‘redirect|R [=code]‘ (強(qiáng)制重定向 redirect)
,以http://thishost[:thisport]/(使新的URL 成為一個(gè)URI) 為前綴的Substitution 可以強(qiáng)制性執(zhí)行一個(gè)外部重定向。如果code 沒有指定,則產(chǎn)生一個(gè)HTTP 響應(yīng)代碼302(臨時(shí)性移動(dòng)) 。 如果需要使用在300-400范圍內(nèi)的其他響應(yīng)代碼,只需在此指定這個(gè)數(shù)值即可,另外,還可以使用下列符號(hào)名稱之一: temp (默認(rèn)的), permanent, seeother. 用它可以把規(guī)范化的URL 反饋給客戶端,如, 重寫“/~”為 “/u/”,或?qū)?u/user加上斜杠,等等。
注意: 在使用這個(gè)標(biāo)記時(shí),必須確保該替換字段是一個(gè)有效的URL! 否則,它會(huì)指向一個(gè)無(wú)效的位置! 并且要記住,此標(biāo)記本身只是對(duì)URL 加上 http://thishost[:thisport]/的前綴,重寫操作仍然會(huì)繼續(xù)。 通常,你會(huì)希望停止重寫操作而立即重定向,則還需要使用’L' 標(biāo)記.
方法二:Redirect ,涉及模塊:mod_alias
例:
DocumentRoot /home/qmhball/web/mybranches/stat_3276/oa/
ServerName oalogin.com
Redirect 301 /login.php http://www.soso.com
將oalogin.com 下對(duì)login.php 的訪問重定向到http://www.soso.com,返回碼301。
如果沒有指定redirect 的返回值(上例中的301),則默認(rèn)重定向是”臨時(shí)性的”(HTTP status 302) 。
綜上所述,能夠?qū)?02重定向具備優(yōu)異處理能力的只有Google 。也就是說(shuō),在網(wǎng)站使用302重定向命令將其它域名指向主域名時(shí),只有Google 會(huì)把其它域名的鏈接成績(jī)計(jì)入主域,而其它搜索引擎只會(huì)把鏈接成績(jī)向多個(gè)域名分?jǐn)偅瑥亩魅踔髡镜逆溄涌偭?。既然作為網(wǎng)站排名關(guān)鍵因素之一的外鏈數(shù)量受到了影響,網(wǎng)站排名降低也是很自然的事情了。
301永久性重定向才是最為安全的一種途徑,也是極為理想的一款解決方案。
以上由:州網(wǎng)站建設(shè)http://www.corfu.cn/ 永孚模板網(wǎng)站之家http://www.020www.com.cn/提供!轉(zhuǎn)載請(qǐng)保留鏈接!