关注互联网与Web前端技术,这里是我记录网上折腾与生活感悟的地方.

如何用301重定向,设置不带www域名

我们做站时通常会遇到这种情况,就是带www和不带www的域名会被同时访问到,
如:

www.example.com
example.com/
www.example.om/index.html
example.com/index.html

虽然这对用户来说并有没有什么不同,但在SEO方面是很不利于搜索引擎排名的域名权重集中的。
如何让带www和不带www域名都能被正常访问,又能将权重集中到我们的主域名上呢?
下面就是我搜集的如何使用301重定向的来实现这个效果的方法。

301重定向具体办法:

1、设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。

使访问example.com/的时候就会自动转到www.example.com
在.htaccess文件里写上以下代码即可。

RewriteEngine on
RewriteCond %{http_host} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
 

2、适用于使用Unix系统的用户。

通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。
形如:Redirect 301 / http://www.example.com

 

3、适用于使用Windows系统的用户

在域名管理后台设置url转发,前面写上example.com 不带www的,后面框里写上www.example.com这种带www的域名,设置成显式转发。显式转发相当于301,隐式转发相当于302,比较危险。
不过值得一提的是,因为URL转发和301概念不同,所以并不是所有的显式转发都是301的(听说万网提供的url转发是302的),可以使用http://tool.chinaz.com/pagestatus/ 提供的网页面HTTP状态查询工具查询example.com,如果“返回状态码:301”。恭喜,那就是301设置成功了。

4、用ASP/PHP实现301重定向:

ASP:

Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.example.com/”
Response.End

PHP:

header(“HTTP/1.1 301 Moved Permanently”);
header(“Location:http://www.example.com/”);
exit();

近日由于本站修改了固定链接,Google百度收录都出了问题。。。无奈在找301重定向的方法,这里是暂时找到的一些,希望对大家有用!

1、重定向domain.com到www.domain.com

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

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

2、重定向www.domain.com到domain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

3、重定向olddomain.com到www.newdomain.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

4、重定向olddomain.com to newdomain.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5、重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

查看HTTP返回状态值工具

http://tool.chinaz.com/pagestatus/
http://www.seobox.org/getheader.htm

 

大家可以看看效果

演示:http://www.yusky.me/ 访问此地址自动跳转到:https://yusky.me

演示二:http://yutian.org 访问此地址自动跳转到:http://www.yutian.org

未经允许不得转载:Yusky » 如何用301重定向,设置不带www域名

分享到:更多 ()

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    NGINX的 怎么写 你这里貌似是apache的

    禅猫2年前 (2014-11-05)回复

    • if ($host != 'www.hupohost.com' ) {
      rewrite ^/(.*)$ http://www.hupohost.com/$1 permanent;
      }

      这是合并www和非www的。 跳转到www, 如果需要跳转到不带www的,那么把下面一句改成去掉www

      Yu Sky2年前 (2014-11-05)回复