多域名301跳轉到主域名Rewrite設置和域名301跳轉的實現方法

米粒在線分享下關于:多域名301跳轉到主域名Rewrite設置和域名301跳轉的實現方法


如果網站有多個域名,而又不希望分散權重,則可以通過開啟Rewrite設置,將多個域名都301跳轉到主域名之下,具體代碼如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^miliol.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.mililo.com [NC,OR]
RewriteCond %{HTTP_HOST} ^miliol.org [NC]
RewriteRule ^(.*)$ http://www.bjmhhq.com/$1 [L,R=301]

其中www.bjmhhq.com為最終希望出現的域名,而miliol.com、www.miliol.com和miliol.org都為希望被301跳轉的域名。(子域名在計算權重的時候也被認為是獨立的新域名,所以此方法也可用于不帶www的域名和帶www的域名之間的跳轉)其中OR的含義為“或”,可以通過OR繼續添加更多的域名。

配置代碼可寫在httpd.conf中,也可以寫在.htaccess文件中,如果是wordpress用戶,在修改.htaccess文件時候,記得將配置代碼寫在# BEGIN WordPress和# END WordPress之外,否則會被wordpress設置時給覆蓋。


域名301跳轉的實現方法

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

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

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

http://www.miliol.com

http://miliol.com

http://www.miliol.com/index.html

http://miliol.com/index.html

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

如果你用301重定向把其他三個URL轉到www.miliol.com
PR也就集中在主域名:www.miliol.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} ^miliol.org [NC]
RewriteRule ^(.*)$ http://www.bjmhhq.com/$1 [L,R=301]

②重定向到新域名:

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

2、Apache下vhosts.conf中配置301轉向:

View Code?APACHE

1
2
3
4
5
6
7
<VirtualHost *:80>
ServerName www.bjmhhq.com
DocumentRoot /home/
</VirtualHost><VirtualHost *:80>
ServerName miliol.org
RedirectMatch permanent ^/(.*) http://www.bjmhhq.com/$1
</VirtualHost>

3)Ruby容器中實現301轉向:

1
2
3
4
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.bjmhhq.com"
end

4)Coldfusion容器中實現301轉向:

1
2
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.bjmhhq.com">

二、程序語言跳轉方法:
1、ASP的301跳轉代碼:

1
2
3
4
5
<%@ Language="VBScript" %>
<%
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.bjmhhq.com"
%>

2、PHP的301跳轉代碼:

1
2
3
4
5
<?
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.bjmhhq.com");
exit();
?>

3、ASP.Net的301跳轉代碼:

View Code?ASP

1
2
3
4
5
6
7
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.bjmhhq.com");
}
</script>

4、CGI Perl的301跳轉代碼:

1
2
$q = new CGI;
print $q->redirect("http://www.bjmhhq.com
");

5、JSP的301跳轉代碼:

1
2
3
4
5
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.bjmhhq.com
" );
response.setHeader( "Connection", "close" );
%>
歡迎來米粒在線學習,轉載請注明出處:http://www.bjmhhq.com/592.html 還有下面的評論也精彩!

 
  • 本文由 米粒在線 發表于 2012年10月4日21:20:37
  • 轉載請務必保留本文鏈接:http://www.bjmhhq.com/592.html
    • 米粒在線 4

      在Linux主機下的,多域名301跳轉設置,常規的寫法,大家應該都會的:
      RewriteEngine On

      RewriteCond %{HTTP_HOST} ^qiuyongsheng.com [NC]
      RewriteRule ^(.*)$ http://www.qiuyongsheng.com/$1 [L,R=301]
      但是要用的是多個域名301跳轉,主機綁定了好幾個域名,尋找的是這些域名同時都陸續跳轉之的方法,寫法:
      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^b.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^www.b.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^c.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^www.c.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^miliol.com [NC]
      RewriteRule ^(.*)$ http://www.miliol.com/$1 [L,R=301]

      就是多個域名,可以在NC后面加個OR設置,直到最后一個,中括號中相關字母代表的意思是:

      1) R[=code](force redirect) 表示強制外部重定向,
      強制在替代字符串加上http://thishost[:thisport]/前綴
      重定向到外部的URL.如果code不指定,將用缺省的302 HTTP狀態碼。
      2) L(last rule) 表明當前規則是最后一條規則,停止分析以后規則的重寫。
      3) NC(no case) 不區分大小寫

      采用重寫語句RewriteRule ^(.*)$ http://www.miliol.com/$1 [L,R=301]后,
      某個url例如miliol.com/news/1.html會被跳轉成www.miliol.com//news/1.html,
      多了一個斜杠,故經過優化后,采用重寫語句
      RewriteRule ^(.*)$ http://www.miliol.com$1 [L,R=301]
      比較好,就不會多出那個斜杠來了。

    發表評論

    匿名網友
    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
    確定

    拖動滑塊以完成驗證