域名301跳轉的實現方法


所謂301永久重定向(或叫301轉向,301跳轉),是指當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。

301永久重定向有何作用?在哪些情況下適用?
從301永久重定向的定義可以看出,它是一種狀態碼,會向搜索引擎或瀏覽器發出信息:本網頁的地址已經永久改變了。並會把新的地址傳達過去。而相應的就是:我們輸入網址A訪問,顯示出來的是轉向后的網址B,轉向過程極短以至無法察覺。所以,301永久重定向對於訪客來說,作用就是將他要訪問的而實際上已不存在的網址轉到另一個網址,避免出現“此網頁無法顯示”之類的錯誤;對於搜索引擎優化|SEO來說,給搜索引擎一個友好的信息,告訴它此頁面已永久重定向,避免搜索引擎找不到頁面。這對於網站的SEO是很重要的,因為301永久重定向對SEO無任何不好的影響!而且網頁A的關鍵詞排名和PR級別都會傳達給網頁B!
一、當出於需要刪除網站中的某些目錄時,可以通過301永久重定向將此目錄重定向到網站首頁。
二、網站更換域名時,通過301永久重定向將舊域名重定向至新域名,挽回流量損失和SEO。
三、想要多個域名同時指向同一網站時,通過301永久重定向可以實現。一般的虛擬主機后台提供將example.com和www.example.com等多個域名綁定到同一網站的功能,但這樣對收錄可能有影響,而用301永久重定向就沒有這樣的擔憂。
四、實現網址規范化。

經常會碰到這樣的情況,其他網站鏈接你的站點時,會用下面的鏈接:

http://www.example.com

http://example.com

http://www.example.om/index.html

http://example.com/index.html

而這樣導致:你站點主域名的PR值分散到其他幾個URLs了。

如果你用301重定向把其他三個URL轉到www.example.com
PR也就集中在主域名:www.example.com 了。

如何實現301永久重定向?

實現的方法主要描述兩種,一種是通過容器的配置修改實現,另外一種是程序語言實現

一、容器的配置修改方法:

1)IIS容器實現301轉向:

1.internet信息服務管理器中,在想要重定向的網頁或目錄上點擊鼠標右鍵
2.選擇-重定向到URL
3.輸入目標頁面的地址
4.選中-資源的永久重定向
5.應用並確定

2)Apache容器下修改方法:

1、修改.htaccess文件,輸入下列內容(需要開啟mod_rewrite):

①將不帶WWW的域名轉向到帶WWW的域名下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^itdcw.com [NC]
RewriteRule ^(.*)$ http://www.itdcw.com/$1 [L,R=301]②重定向到新域名:

RewriteEngine on
RewriteRule ^(.*)$ http://www.itdcw.com/$1 [L,R=301]

2、Apache下vhosts.conf中配置301轉向: <VirtualHost *:80>
ServerName www.itdcw.com
DocumentRoot /home/
</VirtualHost><VirtualHost *:80>
ServerName itdcw.com
RedirectMatch permanent ^/(.*) http://www.itdcw.com/$1
</VirtualHost> 

3)Ruby容器中實現301轉向:
 def old_action
headers["Status"] "301 Moved Permanently"
redirect_to "http://www.itdcw.com"
end 
4)Coldfusion容器中實現301轉向:
 <.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.itdcw.com"> 

二、程序語言跳轉方法:
1、ASP的301跳轉代碼:
 <%@ Language="VBScript" %>
<%
Response.Status "301 Moved Permanently"
Response.AddHeader "Location", "http://www.itdcw.com"
%> 

2、PHP的301跳轉代碼:

$the_host = $_SERVER['HTTP_HOST']; //獲取主域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; //獲取后綴
if($the_host != 'nanjingseo.org')   
{   
  header('HTTP/1.1 301 Moved Permanently');
   header('Location: http://nanjingseo.org'.$request_uri);
}

 



3、ASP.Net的301跳轉代碼:
 <script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status "301 Moved Permanently";
Response.AddHeader("Location","http://www.itdcw.com");
}
</script> 

4、CGI Perl的301跳轉代碼:
 $q new CGI;
print $q->redirect("http://www.itdcw.com"); 

5、JSP的301跳轉代碼:
 <%
response.setStatus(301);
response.setHeader( "Location", "http://www.itdcw.com" );
response.setHeader( "Connection", "close" );
%> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM