浅谈重定向
網絡上常用的重定向方式有四種:Javascript 重定向,Meta refresh 重定向,301重定向,302重定向,CS代碼重定向(response.redirect)
重定向(redirect)——一個對瀏覽器的指導,讓其顯示不同的URL而不是當初瀏覽器所請求的。重定向允許舊的URL被重新指向到目前的URL上,因此當訪客使用舊的URL時,不會得到一個“網頁沒有被找到”的消息(就是通常大家知道的HTTP404錯誤)。
1. Meta 更新重定向(Meta Refresh redirects)
HTML在<head>部分的meta標簽頁可以重新鏈接一個網頁——通常被稱為“meta”更新重定向例如:
<meta http-equiv="refresh" content="10; url=http://www.doumiao.net">
其中的“10”是告訴瀏覽器在頁面加載10秒鐘后自動跳轉到doumiao.net。
這種方法常在論壇中見到。如果在論壇上發表帖子,先會看到一個確認頁面,幾秒后會自動重新跳轉回當前的論壇頁面中。
從搜索引擎優化的角度出發,一般不希望自動轉向有延遲。不過,如果是用Meta Refresh標識進行轉向,一定要注意把延遲時間設定成至少10秒以上。對于這種自動轉向法,搜索引擎能夠自動檢測出來。因而無論網站的轉向出于什么目的,都很容易被搜索引擎視為對讀者的誤導而受到懲罰。不過,如果跳轉延遲時間設置合適,搜索引擎就不會視之為作弊。
meta 標簽之NAME屬性 詳解>>
2. JavaScript重定向
JavaScript自動重定向腳本可以放在網頁的任何位置上,如果要求立即跳轉,則可以將其放入網頁源碼的<head>區內的最上面。例如:
<script language="javascript">location.replace("xx.aspx")
3 什么是301重定向?
也稱為永久重定向(permanent redirect),是一跳對網站瀏覽器的指令,來顯示瀏覽器被要求顯示的不同的URL,當一個網頁經歷過其URL的最后一次變化以后時使用。一個永久重定向是一種服務器端的重定向,能夠被搜索引擎蜘蛛正確的處理。
301重定向可促進搜索引擎優化效果
從搜索引擎優化角度出發,301重定向是網址重定向最為可行的一種辦法。當網站的域名發生變更后,搜索引擎只對新網址進行索引,同時又會把舊地址下原有的外部鏈接如數轉移到新地址下,從而不會讓網站的排名因為網址變更而收到絲毫影響。同樣,在使用301永久性重定向命令讓多個域名指向網站主域時,亦不會對網站的排名產生任何負面影響。
302重定向可影響搜索引擎優化效果
迄今為止,能夠對302重定向具備優異處理能力的只有Google。也就是說,在網站使用302重定向命令將其它域名指向主域時,只有Google會把其它域名的鏈接成績計入主域,而其它搜索引擎只會把鏈接成績向多個域名分攤,從而削弱主站的鏈接總量。既然作為網站排名關鍵因素之一的外鏈數量受到了影響,網站排名降低也是很自然的事情了。
綜上所述,在眾多重定向技術中,301永久性重定向是最為安全的一種途徑,也是極為理想的一款解決方案。
對于正確實施301重定向,有這樣幾個方法可供大家參考:
1.在.htaccess文件中增加301重定向指令
采用“mod_rewrite”技術,形如:
RewriteEngine on
RewriteRule ^(.*)$ http://www.williamlong.info/$1 [R=301,L]
2.適用于使用Unix網絡服務器的用戶
通過此指令通知搜索引擎的spider你的站點文件不在此地址下。這是較為常用的辦法。
形如:Redirect 301 / http://www.williamlong.info/
3.在服務器軟件的系統管理員配置區完成301重定向
適用于使用Window網絡服務器的用戶
4.綁定/本地DNS
如果具有對本地DNS記錄進行編輯修改的權限,則只要添加一個記錄就可以解決此問題。若無此權限,則可要求網站托管服務商對DNS服務器進行相應設置。
DNS服務器的設置
若要將blog.williamlong.info指向www.williamlong.info,則只需在DNS服務中應增加一個別名記錄,可寫成:blog IN CNAME www.williamlong.info。
如需配置大量的虛擬域名,則可寫成:* IN CNAME www.williamlong.info.
這樣就可將所有未設置的以williamlong.info結尾的記錄全部重定向到www.williamlong.info上。
5.用ASP/PHP實現301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.williamlong.info/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.williamlong.info/");
exit();
?
4. 302重定向
也被認為是暫時重定向(temporary redirect),一條對網站瀏覽器的指令來顯示瀏覽器被要求顯示的不同的URL,當一個網頁經歷過短期的URL變化時使用。只有當一個網站或網頁在24到48小時之內臨時移到其它位置的情況下才能使用該命令。
迄今為止,能夠對302重定向具備優異處理能力的只有Google。也就是說,在網站使用302重定向命令將其它域名指向主域名時,只有Google會把其它域名的鏈接成績計入主域,而其它搜索引擎只會把鏈接成績向多個域名分攤,從而削弱主站的鏈接總量。既然作為網站排名關鍵因素之一的外鏈數量受到了影響,網站排名降低也是很自然的事情了。
什么是302重定向?
5.動態重定向.
如asp.net中的response.redirect(""),需要通過服務器
綜上所述,在眾多重定向技術中,301永久性重定向是最為安全的一種途徑,也是極為理想的一款解決方案。
轉載于:https://www.cnblogs.com/1yuruyi/archive/2009/09/12/1565293.html
總結
- 上一篇: 监视程序中的死锁及其他
- 下一篇: 正则表达式之收藏