全站301重定性 避免帶與不帶www域名權重分散的幾種方法


避忌權重分散,力求權重集中是網站SEO優化的一個重要內容,今天要談的是帶www與不帶www的域名權重問題,我們的目標是不管用什么方法,力求做到帶www與不帶www的域名權重集中到其中一個上來。

      帶www與不帶www的域名,在域名解析和網站管理上都可以是獨立的,但是除非特別的原因,否則絕大多數網站帶www與不帶www的域名都是指向同一個站點,網站內容是不分開的,然而盡管如此,搜索引擎仍然會認為帶www與不帶www的域名是代表兩個不同的網站,在收錄和權重分配上仍然是分開的。這就是所謂的“權重分散”,對於網站SEO優化來說,是一個需要特別重視的部分。本文將要介紹幾種方法,避免帶www與不帶www域名的權重分散。

      1、全站頁面使用301永久重定向

      如果你的網站所有頁面不是html的靜態頁面,使用的是PHP、asp或asp.net的程序,那么要實現帶www與不帶www域名通過301永久重定向到其中一個上來是件很容易的事情。我們只需在每個頁面開頭添加幾行代碼即可。

      PHP代碼:

      <?php   
      $the_host = $_SERVER['HTTP_HOST'];//取得當前域名   
      $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷地址后面是否有參數   
      if($the_host == 'webkaka.com')//把這里的域名換上你想要的   
      {   
            header('HTTP/1.1 301 Moved Permanently');//發出301頭部   
            header('Location: http://www.webkaka.com'.$request_uri);//跳轉到你希望的地址格式   
      }  
      ?>

      ASP代碼:

      <%
      currentdomain= request.ServerVariables("SERVER_NAME")     '獲取地址欄中當前的域名。
      currenturl=request.ServerVariables("url")     '獲取地址欄中的域名后的ASP文件名。
      currentrequest=request.ServerVariables("QUERY_STRING")     '獲取地址欄中?后面的參數
      If currentdomain="webkaka.com" Then     '只有當瀏覽的域名是webkaka.com的時候才做301跳轉
      moveurl="http://www.webkaka.com"&currenturl     '重新組合為http://www.webkaka.com/
            If currentrequest<>"" Then
            moveurl=moveurl&"?"&currentrequest     '因為還有參數,所以將參數也組合到新的跳轉地址中去
            End if
            '跳轉
      Response.Status="301 Moved Permanently"     '以下兩句實現301永久性跳轉
      Response.AddHeader "Location",moveurl
      End if
      %>

      上述代碼可以實現全站301,但是需要每個頁面都添加這些代碼,有點麻煩,如果有更簡單的方法來實現就更好了。

      2、巧用IIS實現全站重定向

      如果你使用的是IIS服務器,那么實現全站重定向將變得異常簡單,你只需要動動鼠標,填上幾個參數,不需要改程序,不需要編寫什么規則代碼。

 

      如上圖所示,在IIS里首先添加一個不帶www域名的網站,然后把主目錄設置下,選中“重定向到URL”及地址即可,后面的“$S$Q”是表示把參數一起重定向,不要去掉。

      3、在html里使用base標簽 避免帶與不帶www域名的權重分散

      在head之間添加上這段代碼:

      <base href="http://www.webkaka.com/" />

      下面是關於base標記的介紹:

      base標記是一個基鏈接標記,是一個單標記。用以改變文件中所有連結標記的參數內定值。它只能應用於標記<head>與</head>之間。

      你網頁上的所有相對路徑在鏈接時都將在前面加上基鏈接指向的地址。

      所以通過這個方法也可以實現避免帶與不帶www域名的權重分散,集中使用同一個域名。

      不過這並不是301重定向。

      IE7中注意:

      1) 、<html>之前不能加入額外的輸出字符。否則IE7就對 base 不進行解析。

      2)、< base >是一個鏈接基准標記,用以改變文件中所有鏈接標記的參數默認值。它只能適應於文件的開頭部分,即標記< head >與< /head >之間。

      4、使用.htaccess實現301重定向

      如果空間支持ReWrite URL重寫,網站使用的是PHP程序,那么可以使用.htaccess實現301重定向。創建一個.htaccess文件,並將下面提供的代碼寫入文件內,它可以確保所有來自對domain.com的請求都轉向到對www.domain.com 進行請求。記住.htaccess文件一定要放在舊網站的根目錄下,並且新網站要和舊網站保持相同的目錄結構及網頁文件。

       PHP代碼實現用301將不帶WWW的域名重定向:即將webkaka.com統一為www.webkaka.com

      rewriteEngine on
      rewriteCond %{http_host} ^webkaka.com[NC]
      rewriteRule ^(.*)$ http://www.webkaka.com/$1 [R=301,L]

      如何檢測301重定向

      可以在這里看看301重定向是否成功,http://www.webkaka.com/webCheck.aspx,看header就行了。

      小知識:

      301與302的區別

      官方說法301、302都是HTTP狀態的編碼,都代表着某個URL發生了轉移,不同之處在於:

      301 redirect: 301 代表永久性轉移(Permanently Moved)。

      302 redirect: 302 代表暫時性轉移(Temporarily Moved )。

 

轉:http://www.webkaka.com/blog/archives/how-to-handle-www-and-no-www-domain-name.html


免責聲明!

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



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