现在很多服务器支持一个站点绑定N个域名,而很多人都习惯将自己的很多域名都一股脑的全部绑定在一个站点上。其实,这样做对网站是很不利的,因为搜索引擎会搞不清楚,认为这所有的域名都是独立的站点而同时收录,但是收录后就会出现一个问题,所有站点内容完全一样,这就会导致搜索引擎会K掉其中的某几个域名,而只保留一个域名,更糟糕的可能是所有域名都被一起K掉。所以,我们就需要为搜索引擎引路,去告诉搜索引擎,哪个域名才是你的网站对应的主要域名,哪些域名是副域名,由此,我们很有必要对次要的域名做301重定向设置。
  在很多情况下,带www和不带www的两个网址,有时候也会被搜索引擎当作2个域名来处理。下面,我以WIN服务器下的IIS的web服务为前提,来说明一下做301重定向的设置。
  我所知道的常用的301重定向设置方法有2种。一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。以下例子以www.mengl.cn 301重定向到www.mengl.cn 进行讲解。
  第一种方法,通过IIS界面实现301重定向:
  1.我们增加一个站点,绑定的以下主机头:mengl.cn www.mengl.cn mengl.com。注意,这里的mengl.cn和mengl.com是因为不带www和带www有可能被搜索引擎当作不同的网址。对应目录E:\webroot\301web。该目录下只需要2个文件,一个default.htm,一个404.htm。
2.IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址:http://www.mengl.cn,同时注意选中下面的资源的永久重定向。
3.到此,我们已经完成了将mengl.com www.mengl.cn这几个域名301重定向到www.mengl.cn。但是通常情况,我们可能以前宣传过不带www的域名,导致搜索引擎已经收录了mengl.com下的一些网址,这样为了不浪费这些收录,我们需要将这些从搜索引擎过来的流量转到www.mengl.cn。那我们怎么做呢。可以通过404+301来实现。则我们设置下这个站点的404信息。还是IIS界面,右键,属性,自定义错误,找到404,双击,出来一个界面,然后在消息类型中选择URL,在下面的URL输入框中输入/404.html。然后我们再在IIS下重新对404.html做301重定向到http://www.mengl.cn。操作步骤同第2步。这样的话,如果用户输入mengl.com/xxx.html之类的,因为找不到,则会到404.html,而通过301,用户最终会进入http://www.mengl.cn该界面。

  通过以上几步,我们在IIS里面完成了301重定向设置。但是大多数情况下,站长们都是用的虚拟主机,这样的话,就没法通过IIS来设置301重定向了。
  则我们可以用第二种方法:通过代码来实现。但是这种方法只能转向域名访问主页形式,无法转向域名访问分页,这个需要加上404跳转到首页才行。操作步骤如下。
  1.同IIS里面的设置方法第一步,需要增加网站目录,并绑定域名mengl.cn www.mengl.cn mengl.com这三个域名。并增加index.php,并保证index.php为第一个默认文档。
  2.修改index.php中的代码。 mengl.com
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.mengl.cn" );
?>
3.参考方法一设置404,使错误页定义到index.php
  这样就用PHP实现了301重定向。