有的时候不得不修改域名。通过这发生在M&A(兼并与收购)场合。尽管令人不快,但是这里有种正确的完成方法,也有很多种错误的方法。典型的情况是,两个域需要指向发生兼并之后的同一个WEB站点。最糟糕的做法是简单地通过DNS很多链接都是日久年深积累的,搜索引擎在确定索引哪一个时将相当困难。结果就出现很多的重复内容问题。可以卸载老的域名,或者在老的域名上放个页面,提示用户应该访问新的域名。这两种方法都防止重复内容问题,但是不会引起链接价值的转移。处理这个重要问题的正确方法是,使用301重定向到新的域名。
只要把如下代码插入到.htaccess文件中:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old\.example\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.old\.example\.com
RewriteRule ^(.*)$ http://www.new.example.com/$1 [R=301,L]
这就是说,如果一个对old.example.com或www.old.example.com的请求到来,它将被永久重定向到www.new.example.com,并且保留了所有的查询字符串参数。注意当某条RewriteCond规则被满足时,这时RewriteRule重写规则是执行的唯一途径。
此外,还可以声明另一种意思:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.new.example\.com
RewriteRule ^(.*)$ http://www.new.example.com/$1 [R=301,L]
这就是说,与标准化情形类似,任何不正确的域都会被重定向。
URL地址标准化:www.example.com 对比 example.com
这时多次出现的另一个主题。因为当一个网站对两个域名www.example.com和example.com都能够访问时,每个搜索引擎都会有问题。作为负责的网站管理员,有必要完全杜绝模糊定义。否则,两种版本都会被索引,将引起重复内容的问题。这是个相当简单的工作。
只要把如下代码插入到.htaccess文件中:
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
这就是说,如果有指向example.com[path]的请求进来,它应该被永久地重定向至www.example.com[path]。
相应地,可以用另一个:
RewriteEngine on
RewriteCond %{HTTP_HOST}!^www\.example\.com
RewriteRule^(.*)$ http://www.examle.com/$1 [R=301,L]
这就是说,如果有指向example.com[path]的请求进来,它将永久地重定向至www.example.com[path]。这是一个范围略有些宽的定义,不管它是不是期望的域名。它也会把任何转到你站点的任何其他域名重定向到www.example.com。
请注意:使用站点清除工具从站点中清除example.com的全部页面,即使这些改变得到了应用,也不是一个好办法!这会导致整个站点被清除。GOOGLE的Matt Cutts说:“如果将主机名清除掉www变成无www的域名,那么在6个月内整个域名都将被清除。请务必不要这么做。”较好的做法是,简单地利用301将不合意的域名重定向到合意的域名,随时时间推移,问题将慢慢得到解决。