全站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 )。



IIS6下301永久重定向步骤

1、先在IIS里把网站正常发布,例如域名为(www.aaa.com)

2、再硬盘上建一个空文件夹

3、再到IIS里建一个网站,例如域名为(aaa.com),指向这个空文件夹,然后对这个又新建的网站设置属性,在“主目录”里,选择成“重定向到 URL”,在下面的文本框里输入自己的域名(www.aaa.com),再选中“上面输入的准确URL”和"资源的永久重定向"。

IIS7/IIS7.5下301永久重定向步骤

1、先在IIS里把网站正常发布,例如域名为(www.aaa.com)

2、再硬盘上建一个空文件夹

3、再到IIS里建一个网站,例如域名为(aaa.com),指向这个空文件夹,然后在这个又新建的网站的“功能视图”里打开“HTTP 重定向”,选中“将请求重定向到此目标”, 在下面的文本框里输入自己的域名(www.aaa.com),再选中“将所有请求重定向到确切的目标(而不是相对于目标)”,状态代码选择成“永久(301)”。

这样,输入aaa.com,会直接跳转到www.aaa.com。对于参数的问题:都可以在重定向输入的URL后面加上$S$Q,例如www.aaa.com$S$Q


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值