尽管最近不再那么流行,有些人还是喜欢将多个域名指向相同站点。比如,假设您有3个域名:
www.edo2008.com www.edo2008.net www.ws818.com
问题出现了,特别是如果你公布了所有这三个域名,人们可以自由地链接到这几个域名中的任何一个。这就是存在严重的重复内容问题。必须选择一个标准域名,并将其他几个域名永久重定向到这个域名。
如果选取www.edo2008.com作为标准域名,下面如何使用mod_rewrite完成处理的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.edo2008\.com
RewriteRule ^(.*)$ http://www.edo2008.com/$1 [R=301,L]
完成了!现在所有其他域名都将被重定向到www.edo2008.com。让我们仔细分析这些规则。RewriteCond被用来为接下来的规则创造条件。这种情况下,目的在于验证站点确实通过www.edo2008.com被访问。再来看看RewriteCond那一行:
RewriteCond %{HTTP_HOST} !^www\.edo2008\.com
这一行指明,当主机名{HTTP_HOST}不是(!)www.edo2008.com时条件为真。重写规则(.*)捕获整个原始URL地址的整个URL地址和查询字符串,并将它传至http://www.edo2008.com,完成301重定向至新位置。比如http://www.edo2008.net/foo?query=string的查询,将被301重定向到http://www.ws818.com/foo?query=string