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