记忆盒子

把记忆装进灰色的盒子,封装起来,那年那月,重新拾起。

首页搜索目录
search
当前主题: 互联网络

全站301重定向 避免带与不带www域名权重分散的几种方法

作者:Kaka    时间:2012-11-5 16:38:51    浏览:    评论:32

      避忌权重分散,力求权重集中是网站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 )。

标签: SEO  301  

加入本站QQ群(312716741),交流分享网站建设、优化、SEO技术。。。

 

上一篇: 网站优化:如何模拟不同带宽测试网页打开速度
下一篇: dos里执行tracert命令只有一跳的原因及解决方法
  • 13.
  • http://www.4006661116.com
  • IIS设置重定向这个试过了,可以是可以,但有个问题,像伪静态的站点,如果用这个方向做重定向,伪静态就不管用了。该如何做?
    Kaka 于 2012-11-18 7:11:33 回复
    伪静态怎么不管用呢?比如访问webkaka.com/a/test.html时会自动重定向到访问www.webkaka.com/a/test.html这个地址。不是吗?我没试验过。
  • 2012-11-17 14:11:57 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客                   QQ交流群(312716741)

  • 通过Google订阅本站 通过鲜果订阅本站 通过抓虾订阅本站
  • 通过QQ邮箱订阅本站 通过Yahoo订阅本站 通过有道订阅本站

Search

最新评论及回复

最近留言

网站分类

Powered By Z-Blog 1.8 Walle Build 91204 Designed by Han'space

Copyright @2009 All Rights Reserved. 粤ICP备09073737号

Powered By Z-Blog 1.8 Walle Build 91204
Copyright @2009 All Rights Reserved.