今天小編請來了云和學院鄭州php培訓班的老師給大家詳細講解301
什么是301:
301轉向(或叫301重定向,301跳轉)是當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。
什么情況下需要我們做301:
1:網站更換域名時,通過301永久重定向將舊域名重定向至新域名,挽回流量損失和SEO。
2:當出于需要刪除網站中的某些目錄時,比如我要刪除我博客下的博客導航,這時就可以用301永久重定向到網站首頁。
3:如果你有多個閑置域名時需要指向同一網站時,通過301永久重定向可以實現。
4:你打算實現網址規范化。
如和做301?以www.8000so.com301到haoracle。com為例
1:IIS 服務器實現301 重定向
打開IIS,右鍵-屬性-網站-IP地址哪里點編輯增加一個站點,增加一個站點,綁定的一下主機頭,也可以綁定多個閑置域名,打開IIS,首先新建立一個站點,隨便對應一個目錄E:\wwwroot\301web。該目錄下只需要2個文件,一個 default.html,一個404.htm。在欲重定向的網頁或目錄上按右鍵;選中“重定向到URL”;在對話框中輸入目標頁面的地址;切記,記得選 中“資源的永久重定向”;當然,最后要點擊“應用”,完成。
2:Apache 服務器實現301 重定向
在Apache 中,有個很重要的文件.htaccess,通過對它的設置,可以實現很多強大的功能,301 重定向只是其中之一。找到redirect permanent / http://haoracle.com:
redirect permanent /old.html http://haoracle.com:修改這句即可。
3:如果網址使用LAMO(Linux+Apache+MySQL+PHP)主機可以在.htaccess文件中增加301重定向指令
采用“mod_rewrite”技術,形如:
RewriteEngine on
RewriteRule ^(.*)$ http://haoracle.com/$1 [R=301,L]
注意:如果網站用的是windows主機,可以在控制面板做301轉向設定。純靜態HTML頁面無法做301轉向。在HTML里能做JS或者Meta Refresh轉向,但不能做301轉向(用HTML跳轉:<META HTTP-EQUIV=REFRESH CONTENT=”5;URL=http://www.8000so.com”>, 表示5秒后自動跳轉到首頁,你也可以把時間設置的更短,但也很容易被搜尋引擎容易誤判為spam而遭到懲罰。用javascript跳 轉:<script language=”javascript”>location.href=’http://www.8000so.com'</script>)。HTML一被讀取,就已經返回200 ok代碼了。如果頁面是ASP或者PHP,還可以做301轉向。
4:適用于使用Unix網絡服務器的用戶
通過此指令通知搜索引擎的spider你的站點文件不在此地址下。這是較為常用的辦法。
形如:Redirect 301 / http://haoracle.com/
5:在服務器軟件的系統管理員配置區完成301重定向
適用于使用Window網絡服務器的用戶
6:綁定/本地DNS
如果具有對本地DNS記錄進行編輯修改的權限,則只要添加一個記錄就可以解決此問題。若無此權限,則可要求網站托管服務商對DNS服務器進行相應設置。
DNS服務器的設置
若要將www.haoraclecom指向haoracle.com,則只需在DNS服務中應增加一個別名記錄,可寫成:www IN CNAME haoracle.com。
如需配置大量的虛擬域名,則可寫成:* IN CNAME haoracle.com.這樣就可將所有未設置的以haorcle.com結尾的記錄全部重定向到haoracle.com上。
7:用ASP/PHP實現301重定向:
ASP:
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://haoracle.com/”
Response.End
PHP:
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location:http://haoracle.com/”);
exit();
我應該用哪種301?哪種301最好?301是否傳遞權重?
這需要根據你的實際情況,這里有必要先說一下我們是如何打開一個網頁的,我們從輸入網址到看到網頁內容這中間到底發生了什么。
1.假設DNS里有一條記錄,是把域名www.haoracle. com 指向web服務器192.168.*.*的。(我們在搭建網站的時候所說的解析域名就是告訴DNS我要把我的域名指向http://xxx.xxx.xxx.xxx主機。)
2:當我們在PC上輸入訪問www.8000so.com 時就會先到DNS上查找有沒有記錄,有的話dns會告訴PC 是192.168.*.*。如果沒有那就悲劇了,我們平時遇到的可以登錄qq但是不能訪問網頁就有可能是這個原因。
3:假設上面再dns里能找到記錄(找不到就沒法寫了),這時候pc1就會拿著192.168.*.*找到r1問,我要去192.168.*.*該怎么走?R1其實有可能具體也不知道怎么走,但是R1知道R1.1 知道怎么走,然后就把數據交給R1.1 。。。。。。一直到R2,R2說我知道,然后R2就把請求交給192.168.*.*
4:Web-Server上還要聲明自己就是www.8000so.com的服務器,要不然他也不會買賬的。假設Web-Server就是www.8000so.com 的服務器(不是又沒法寫了),Web-Server看到數據請求是來請求訪問www.8000so.com的,然后就把www.8000so.com 的首頁返回給PC
5:PC拿到數據后就會在瀏覽器上解析出我們常見的網頁。
簡單來說就是這樣子:1.輸入網址——>2.此時電腦開始查詢最近的dns服務器找到對應IP——-尋找此IP的問路過程——–>3.找到聲明自己就是對應IP的服務器——–>4.服務器響應請求給出對應的路徑地址和內容——–>5.瀏覽器解析看到內容
也就是說想要最快的301效果,直接從第2步用dns301跳轉(域名解析)最快;其次是用第4步,服務器設置301跳轉;第4步中如果開啟了.htacess文件,則服務器還要再訪問一次.htacess,這種跳轉是最慢的。因為其訪問層級最深。嚴格來說第2步DNS設置的跳轉是域名解析,不能稱為301,這樣的跳轉根本訪問不到舊的IP,也就不存在權重轉移。而html靜態頁中不論是Meta Refresh轉向還是js跳轉實際上都已經訪問到“頁面“”,只不過頁面內容指示頁面跳轉,這里如果設置不當甚至可能被搜索引擎判定為作弊。想要實現權重轉移,最好的辦法是服務器響應請求之前,返回靜態頁之前用服務器設置或者.htacess文件做301跳轉。
做完301后,新域名添加新內容,老域名是否還會收錄?
如果搜索引擎get到了301,也就意味著get到了舊域名地址,即使新域名添加了新頁面,對應的還是會有一個舊域名的頁面被抓去,隨著時間的積累,搜索引擎意識到舊域名永久轉移,會逐漸減少甚至停止舊域名的抓取。最后直至完全把舊快照完全清理出數據庫,這需要一個漫長的時間。更多問題歡迎來電咨詢鄭州php培訓班的專家老師。