简单生活

Simple life , it's as easy as 1,2,3...

利用301重定向实现域名补全www

关于域名、顶级域名、二级域名可能很多人存在这样一种误解,带www的才是的顶级域名,或者两者之间并没有差别。而事实上,带www的域名和不带www的绝不是同一个,不带www的域名才是顶级域名,带www的域名应该只是一个二级域名。举个例子,www.wilf.cn≠wilf.cn,而www.wilf.cn和qqq.wilf.cn是一个道理。

只是,用户对此可能没有概念,大家习惯访问的域名都是带www的,于是我们也都习惯使用带有www的域名。

那么不带www的域名怎么办呢?一般有三种情况:

1、和带有www的域名解析到一起。这样可能会造成两个网站的内容两个url的情况,一个带www,另一个不带www,重复的内容不同的域名,这样做对SEO是绝对不利的。

2、利用各种途径将不带www的域名跳转到带www的域名。跳转的方法有很多,这也是本文的意义所在。

3、不解析,不跳转,无法访问。我持有的几个域名和网站曾经一度都是这样。

以下重点说转向,转向可以通过很多方法实现

比如域名解析里自带的跳转,html的<meta http-equiv="refresh" content="5;url=www.i0554.com">,javascript的location.href='www.i0554.com',还有各种语言的跳转了,以及下面的301重定向。

301重定向,也称为301转向。它的功能就是告诉搜索引擎,你的网址永久的变换了,从而将原网址的权重全部定向到新的网址上面。以下是不同环境下网站进行301重定向的代码

1、ASP下的301转向代码

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “http://i0554.com/”
%>

3、ASP.Net下的301转向代码

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”http://i0554.com/“);
}
</script>

4、PHP下的301转向代码

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

5、CGI Perl下的301转向代码

$q = new CGI;
print $q->redirect(”http://i0554.com/”);

 

6、JSP下的301转向代码

<%
response.setStatus(301);
response.setHeader( “Location”, “http://i0554.com/” );
response.setHeader( “Connection”, “close” );
%>

7、Apache下301转向代码

新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

1)将不带WWW的域名转向到带WWW的域名下

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^i0554.com [NC]
RewriteRule ^(.*)$ http://www.i0554.com/$1 [L,R=301]

2)重定向到新域名

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://i0554.com/$1 [L,R=301]

3)使用正则进行301转向,实现伪静态

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(.+).html$ news.php?id=$1

将news.php?id=123这样的地址转向到news-123.html

 

« Google退出对我这个普通用户的影响关于wolfit这个名字 »
    Gravatar头像
  • quote 1.站长助
  • 2010-3-27 9:20:23 回复
  • 说的很详细,一般我也都带www
    Gravatar头像
  • quote 2.haibor
  • 2010-3-27 12:59:14 回复
  • 最近把博客放到服务器上了,直接IIS转向!呵呵!
    Gravatar头像
  • quote 3.daniel
  • 2010-3-27 14:17:50 回复
  • 我的站点,带不带www都是可以正常访问的。
    狼的旋律 于 2010-3-30 8:59:24 回复
    两个域名分别都解析过来就可以了
    Gravatar头像
  • quote 4.Hector
  • 2010-3-29 22:38:32 回复
  • 很全呀,我懒得弄就直接不要带www了
    狼的旋律 于 2010-3-30 8:58:51 回复
    可以把带www的跳转到不带的,我觉得应该以一个为主
    Gravatar头像
  • quote 6.U特尔
  • 2010-4-19 8:57:58 回复
  • 在查询收录跟反向链接的时候就能很明显的发现
    Gravatar头像
  • quote 7.平平
  • 2010-4-26 20:40:47 回复
  • 我想知道linux下 同时将没www的和/index.php 转移到www的 有方法不
    狼的旋律 于 2010-4-26 20:42:53 回复
    linux下当然要参考第七条 Apache下301转向代码
    Gravatar头像
  • quote 8.义乌导购网
  • 2010-5-1 4:03:17 回复
  • 1、和带有www的域名解析到一起。这样可能会造成两个网站的内容两个url的情况,一个带www,另一个不带www,重复的内容不同的域名,这样做对SEO是绝对不利的。
    对楼主这一点说法持保留态度,分析的带www和不带www 域名本质没错。
    搜索引擎都一直是说要人性话发展,人性化的一个体现就是对公众约定俗成的习惯的尊重。不带www的一级域名是真正的网址有存在的意义;而大众又喜欢用www域名访问,那就不可能对其惩罚。
    如果Google和百度不尊重这点常识那简直是比机器还机器。。

发表评论:

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

关注我

最新评论及回复

赞助商链接

Powered By Z-Blog 1.8 Walle Build 91204
Copyright © 2007-2011 Wilf.cn. Some Rights Reserved