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