留意过 SEO 方面的朋友应该了解,前面带有 www 的域名和不带 www 的域名是不同的。如果只解析了其中一个,通过另一个就无法访问到网站。一般来说,为了改善用户体验,应该将两个域名都做解析,让用户无论用哪个都能访问网站。
但是这样一来,在搜索引擎看来,domain.com 和 www.domain.com 变成了一模一样的两个网站,其收录的内容也会被分为两半。在 SEO 的意义上,这十分有害,等于两兄弟相斗,降低网站的权重。所以站长一般会选择其中一个域名作为标准,而将另一个域名以 301 Permanent 永久重定向至标准域名。
例如,我们访问 amazon.cn,就会被自动转向 www.amazon.cn。这样既照顾到 SEO,又提升了用户体验。要做到这点,只需为网站根目录添加以下 URL 重写规则:
Nginx
# 使用带 www 的域名 if ($host !~* ^www\.) { rewrite ^/(.*)$ $scheme://www.$host/$1 permanent; } # 使用不带 www 的域名 if ($host ~* ^www\.(.*)) { set $host_without_www $1; rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; }
Apache
# 使用带 www 的域名 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.$ [NC] RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301] # 使用不带 www 的域名 RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.$ [NC] RewriteRule ^(.*)$ http://mysite.com/$1 [L,R=301]