赵荣涛's Archivers

From admin on 2011-10-27 03:44:55

如何将不带www的根域名跳转到带www的主域名上

如何将不带www的根域名跳转到带www的主域名上


 

之前一直在想如何在网址中输入oicto.com的域名时就跳转到www.oicto.com的根域名上,因为在中国大家都将带www开头的域名认为是主域名,其实不带www的域名才是主域名,但是为了符合中国人的认知习惯我们还是有必要将主域名跳转到根域名上的。




在网上找了很久很久才找到的这个比较详细的教程,不是我个人原创的,我觉得对许多站长而言非常有帮助的。





 

看到一般网站都把如:oicto.com转发到www.oicto.com,于是今天准备把oicto.com转发到www.oicto.com,在网上找了一会,发现godaddy域名转发后在国内访问不了,于是搜索godaddy域名转发方法,果然,用.htaccess可以实现转发,方法如下:

 



 

1、将oicto.com解析到与www.oicto.com相同的ip;(godaddy的NS默认oicto.com与www.oicto.com解析的ip相同)
2、新建.htaccess 文件,加入如下代码,保存后上传到网站上面;



代码:


 



  1. RewriteEngine On

  2. RewriteCond %{HTTP_HOST} ^blog.oicto.com [NC]

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






在浏览器中输入oicto.com,立刻跳转到www.oicto.com,成功!


你的网站在做域名解析时,有没有设置不带www的域名?应该设置一个不带www的域名。这样,当用户使用不带www的域名时,可以正常访问你的网站。


 


但是我们经常碰到这样的情况,其他网站链接你的站点时,会用下面的链接:


www.oicto.com


 


oicto.com/


 


www.example.om/index.html


 


oicto.com/index.html




 



 


而这样导致:你站点主域名的pr值分散到其他几个URLs了。因为在搜索引擎看来,带www和不带wwwURL是不同的两个URL,当它们指向同一个网站时,会让搜索引擎不懂应该选择哪一个URL作为主要的。


 


 

如果你用301重定向把其他几个URL如oicto.com转到
www.oicto.com
PR也就集中在主域名:www.oicto.com 了。

虽然在google网站管理员中心中,可以google设定首选域名,而这个设置就是为一些人设置不了301的问题而准备的,设定首选域名和301是一样的效果,不过这仅仅对google有效。该设置301还是要设置的,毕竟是要对所有搜索引擎的。

 

 

Url转发与301重定向的区别

经过测试以后,发现URL转发、域名绑定、301永久重定向、302暂时性定向、meta 转发之间有不同的概念。


URL转发:分显性转发,隐性转发,如果做SEO,后者直接K掉。下面的URL转发一般指显性转发。


有一点说法是:URL转发不利于SEO,对PR没有传递,301对SEO很友好,可以传递PR 。但是有的URL转发测试返回的代码是301。下面会提到。


URL转发对已经存在网址统一重新转向新域名。而301重定向如果使用代码一般只针对首页有效,虽然htaccess可以达到目标,但win不支持。最好的方法是有IIS控制台里的重定向(效果如何没测试),或者htaccess支持(使用正则表达式达到各路径的对应重定向,相当于替换域名)








 


 


至于301与302转向的区别


实施301后,新网址完全继承旧网址,旧网址的排名等完全清零。


实施302后,对旧网址没有影响,但新网址不会有排名。


302即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。


meta fresh:其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。




 

 


301重定向具体办法


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


使访问oicto.com/的时候就会自动转到www.oicto.com


在.htaccess文件里写上以下代码即可。






  1. RewriteEngine on

  2. RewriteCond %{http_host}^oicto.com [NC]

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




 

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


2,适用于使用Unix系统的用户


通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。


形如:Redirect 301 / http://www.oicto.com


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


在域名管理后台设置url转发,前面写上oicto.com 不带www的,后面框里写上www.oicto.com这种带www的域名,设置成显式转发。显式转发相当于301,隐式转发相当于302,比较危险。


不过值得一提的是,因为URL转发和301概念不同,所以并不是所有的显式转发都是301的(听说万网提供的url转发是302的),可以使用http://tool.alimama.com/tools.php 提供的网站Header信息查询工具查询oicto.com,如果返回代码有“HTTP/1.1 301Moved Permanently”。恭喜,那就是301的。我的是新网,新网(xinnet)提供url显式转发是301的,我就使用了此方法。


如果你是万网,又是windows主机,那就用DNS别名解析吧。


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


ASP:






  1. Response.Status="301 MovedPermanently"

  2. Response.AddHeader"Location","http://www.oicto.com/"

  3. Response.End






 

PHP:






  1. header("HTTP/1.1 301 MovedPermanently");

  2. header("Location:http://www.oicto.com/");

  3. exit();






 



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


1.重定向oicto.comwww.oicto.com


这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.oicto.com到oicto.com也是出于同样的原因,只是形式不同。


打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)


 






  1. RewriteEngine On

  2. RewriteCond %{HTTP_HOST} !^www.oicto.com$[NC]

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




 

 

2.重定向www.oicto.comoicto.com






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




 

 

3.重定向oldoicto.comwww.newoicto.com


 






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




 

 

 


4.重定向oldoicto.com to newoicto.com


 






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




 

 

5.重定向oicto.com/file/file.php otheroicto.com/otherfile/other.php


 






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




 

 

 






如果你用301重定向把其他几个URL如oicto.com转到
www.oicto.com
PR也就集中在主域名:www.oicto.com 了。

虽然在google网站管理员中心中,可以google设定首选域名,而这个设置就是为一些人设置不了301的问题而准备的,设定首选域名和301是一样的效果,不过这仅仅对google有效。该设置301还是要设置的,毕竟是要对所有搜索引擎的。

 

查看完整版本: 如何将不带www的根域名跳转到带www的主域名上

From 七七博客 on 2011-11-27 10:57:53

感谢指点!! 学习 !!

From 潇遥 on 2012-07-09 17:23:52

你博客不错 我以后经常过来学习 之前一直用新浪博客 独立博客真蛋疼啊

From 潇遥 on 2012-07-09 17:27:50

301转向我今天刚刚学会。O(∩_∩)O哈哈哈~ 我现在做的是seo 但一直想报个php培训班 即使想一直seo做下去 css和php不会也是做不好SEO的

From JackRubbish on 2012-07-09 17:41:44

呵呵,你真是代码控啊

From JackRubbish on 2012-07-09 18:04:26

请问不动空间 直接在博客后台改代码能实现301定向吗

From 恒工 on 2012-11-26 10:16:40

如果是不带WWW的定向到带WWW的,是Win主机,如何做呢?

Tags: