当我们打开网址时,大部份都习惯在前面加www,例如:www.wanminsyw.cn,很少一部份人不加www,其实这是两个不同的域名,加www是一个二级域名,不加www是个顶级域名,他们可分别绑定和指向不同的空间,但实现中,这两个域名,打开的都是同一个网站。
当我们在百度或google用site:www.wanminsyw.cn与site:wanminsyw.cn,你就会发现他们的区别,site不加www的,收录的数量比加www的多,不加www的将会显示出收录了的二级域名所有文章,也就是不加www的权重要比加www的权重高。
如果同一个网站,同时用二级域名和顶级域名,但权重会相对分散,这时,我们就需要用301重定向解决。
根据用户习惯,我们把加www的二级域名作为主域名,而顶级域名做301重定向,指向加www的域名,301的定向方法如下:
我所知道的常用的301重定向设置方法有2种。一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。以下例子以wanminsyw.cn 301重定向到www.wanminsyw.cn 进行讲解。
第一种方法,通过IIS界面实现301重定向:
1.我们增加一个站点,绑定的以下主机头:wanminsyw.cn。注意,这里的wanminsyw.cn是因为不带www和带www有可能被搜索引擎当作不同的网址。对应目录E:\webroot\301web。该目录下只需要2个文件,一个default.htm,一个404.htm。截图如下:
2.IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址:http://www.wanminsyw.cn,同时注意选中下面的资源的永久重定向。截图如下:
3.到此,我们已经完成了将wanminsyw.cn这几个域名301重定向到www.wanminsyw.cn。但是通常情况,我们可能以前宣传过不带www的域名,导致搜索引擎已经收录了wanminsyw.cn下的一些网址,这样为了不浪费这些收录,我们需要将这些从搜索引擎过来的流量转到www.wanminsyw.cn。那我们怎么做呢。可以通过404+301来实现。则我们设置下这个站点的404信息。还是IIS界面,右键,属性,自定义错误,找到404,双击,出来一个界面,然后在消息类型中选择URL,在下面的URL输入框中输入/404.html。然后我们再在IIS下重新对404.html做301重定向到http://www.wanminsyw.cn。操作步骤同第2步。这样的话,如果用户输入wanminsyw.cn/xxx.html之类的,因为找不到,则会到404.html,而通过301,用户最终会进入http://www.wanminsyw.cn该界面。
通过以上几步,我们在IIS里面完成了301重定向设置。但是大多数情况下,站长们都是用的虚拟主机,这样的话,就没法通过IIS来设置301重定向了。
则我们可以用第二种方法:通过代码来实现。操作步骤如下。
用ASP/PHP实现301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.wanminsyw.cn/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.wanminsyw.cn/");
exit();
感谢hero投稿