黑帽SEO秒排慣用的301與302跳轉(zhuǎn)技術(shù)(301與302重定向的區(qū)別)
技術(shù)(301與302重定向的區(qū)別).jpg)
301與302重定向的區(qū)別
一,301永久重定向
被請求的資源已永久移動到新位置,并且將來任何對此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個 URI 之一。
如果可能,擁有鏈接編輯功能的客戶端應(yīng)當(dāng)自動把請求的地址修改為從服務(wù)器反饋回來的地址。除非額外指定,否則這個響應(yīng)也是可緩存的。
新的永久性的 URI 應(yīng)當(dāng)在響應(yīng)的 Location 域中返回。除非這是一個 HEAD 請求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的 URI 的超鏈接及簡短說明。
如果這不是一個 GET 或者 HEAD 請求,因此瀏覽器禁止自動進(jìn)行重定向,除非得到用戶的確認(rèn),因?yàn)檎埱蟮臈l件可能因此發(fā)生變化。
注意:對于某些使用 HTTP/1.0 協(xié)議的瀏覽器,當(dāng)它們發(fā)送的 POST 請求得到了一個301響應(yīng)的話,接下來的重定向請求將會變成 GET 方式。
二,302 Found
請求的資源現(xiàn)在臨時從不同的 URI 響應(yīng)請求。由于這樣的重定向是臨時的,客戶端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請求。只有在Cache-Control或Expires中進(jìn)行了指定
的情況下,這個響應(yīng)才是可緩存的。
新的臨時性的 URI 應(yīng)當(dāng)在響應(yīng)的 Location 域中返回。除非這是一個 HEAD 請求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的 URI 的超鏈接及簡短說明。
如果這不是一個 GET 或者 HEAD 請求,那么瀏覽器禁止自動進(jìn)行重定向,除非得到用戶的確認(rèn),因?yàn)檎埱蟮臈l件可能因此發(fā)生變化。
注意:雖然RFC 1945和RFC 2068規(guī)范不允許客戶端在重定向時改變請求的方法,但是很多現(xiàn)存的瀏覽器將302響應(yīng)視作為303響應(yīng),并且使用 GET 方式訪問在 Location
中規(guī)定的 URI,而無視原先請求的方法。狀態(tài)碼303和307被添加了進(jìn)來,用以明確服務(wù)器期待客戶端進(jìn)行何種反應(yīng)。
大家都已經(jīng)對基本的301跳轉(zhuǎn)和302跳轉(zhuǎn)做了解釋, 我從我的理解解答下。
如果從便于搜索引擎友好的話當(dāng)然是301最合適,一般情況下非特意臨時性URL轉(zhuǎn)移,都盡量用301跳轉(zhuǎn),這樣的一個好處是搜索引擎會把該URL的PR值都帶到跳轉(zhuǎn)后的地址,而
302跳轉(zhuǎn)早期被很多網(wǎng)站當(dāng)作作弊手段,已經(jīng)被多數(shù)搜索引擎重點(diǎn)盯查。
而性能方面原則上301跳轉(zhuǎn)和302跳轉(zhuǎn)沒有多大差別,不過考慮到搜索引擎?zhèn)€案對待,也建議使用301跳轉(zhuǎn),301跳轉(zhuǎn)搜索引擎是不對原地址進(jìn)行訪問的,而302跳轉(zhuǎn)除了象@張洪
保所講可能被劫持之外,還有可能會加大對服務(wù)器的URL請求數(shù)量。
搜索引擎對302跳轉(zhuǎn)進(jìn)行判斷時,如果發(fā)現(xiàn)跳轉(zhuǎn)目標(biāo)頁面URL更加復(fù)雜,就會返回來對原URL進(jìn)行訪問,尋取一個簡單友好的地址,這樣無形會加重服務(wù)器性能損耗,因此301跳
轉(zhuǎn)要比302跳轉(zhuǎn)靠普也對服務(wù)器性能有保障。
三,區(qū)別分析
301的含義是“永久重定向”,而302的含義是“臨時重定向”
301 代表永久性轉(zhuǎn)移是網(wǎng)頁更改地址后對搜索引擎友好的最好方法,只要不是暫時搬移的情況,都建議使用301來做轉(zhuǎn)址。
301轉(zhuǎn)向:是當(dāng)用戶或搜索引擎向網(wǎng)站服務(wù)器發(fā)出瀏覽請求時,服務(wù)器返回的HTTP數(shù)據(jù)流中頭信息(header)中的狀態(tài)碼的一種,表示本網(wǎng)頁永久性轉(zhuǎn)移到另一個地址。
由于搜索引擎排名算法只是程序而不是人,在遇到302重定向時,并不能像人一樣的去準(zhǔn)確判定哪一個網(wǎng)址更適當(dāng),這就造成了網(wǎng)址URL劫持的可能性。也就是說,一個不道德
的人在他自己的網(wǎng)址A做一個302重定向到你的網(wǎng)址B,出于某種原因, Google搜索結(jié)果所顯示的仍然是網(wǎng)址A,但是所用的網(wǎng)頁內(nèi)容卻是你的網(wǎng)址B上的內(nèi)容,這種情況就叫做
網(wǎng)址URL劫持。你辛辛苦苦所寫的內(nèi)容就這樣被別人偷走了。
302重定向又稱之為302代表暫時性轉(zhuǎn)移(Temporarily Moved ), 也被認(rèn)為是暫時重定向(temporary redirect),一條對網(wǎng)站瀏覽器的指令來顯示瀏覽器被要求顯示的不同的
URL,當(dāng)一個網(wǎng)頁經(jīng)歷過短期的URL的變化時使用。一個暫時重定向是一種服務(wù)器端的重定向,能夠被搜索引擎蜘蛛正確地處理。
301重定向與302重定向的區(qū)別在于302重定向是暫時的重定向,搜索引擎會抓取新的內(nèi)容而保留舊的網(wǎng)址。
因?yàn)榉?wù)器返回302代碼,搜索引擎認(rèn)為新的網(wǎng)址只是暫時的。
301重定向是永久的重定向,搜索引擎在抓取新內(nèi)容的同時也將舊的網(wǎng)址替換為重定向之后的網(wǎng)址。
一、C#實(shí)現(xiàn)301和302跳轉(zhuǎn)
把C#代碼寫在前臺aspx頁面中,好處是不用編譯就可以發(fā)布。直接使用Redirect就是302跳轉(zhuǎn)。
<% Response.Redirect("http://www.xnantong.com"); %>
如果在跳轉(zhuǎn)的時候加一些HTTP HEADER,在.net 2.0下也可實(shí)現(xiàn)301永久轉(zhuǎn)移。
<%
Response.Status = "301 Moved Permanently";
Response.AddHeader("X-Message", "By fanyong @ SNDA");
Response.AddHeader("Location", "http://www.xnantong.com/");
Response.Write("<head><title>Document Moved</title></head><body><h1>Object Moved</h1>This document may be found <a HREF="http://www.xnantong.com">here</a></body>");
Response.End();
%>
當(dāng)然,在高版本的Framework中,直接使用:
Response.RedirectPermanent() 實(shí)現(xiàn)301永久轉(zhuǎn)移。
二、js控制跳轉(zhuǎn)
<script type="text/javascript">
window.onload=function redirct2qidian(){
window.location.href="http://www.xnantong.com/";
}
</script>
或者通過:
<meta http-equiv="Refresh" content="3; url=http://www.xnantong.com" />
這2種方法的缺點(diǎn)是搜索引擎蜘蛛不會執(zhí)行js,所以使用js跳轉(zhuǎn)不會把原來頁面的權(quán)重轉(zhuǎn)移到新的頁面,而且搜索引擎對于javascript重定向以及meta刷新會認(rèn)定為欺騙而進(jìn)行懲罰。因此不可取。
三、php實(shí)現(xiàn) 301跳轉(zhuǎn)
<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.xnantong.com");
?>