2011/08/31 11:16
文章作者:Enjoy 转载请注明原文链接。
一般来说,经常见到的应该是带www的域名,但是有不少人在直接输网址的时候喜欢省略掉www,而不带www和带www的域名原则上说是不同的,因此有些站(甚至有些是小有名气的站)都没有注意到这点,解析了www,没解析没带www的,导致访问不带www域名时失败。
因此,带www和不带www的都要做解析。但是两个都解析后,产生一个问题,搜索引擎认为这是两个站点。
比较好的处理方式是不带www的域名301到带www的域名下。下面提供两种方案,一种新建一个根域名的主机配置,专门用来跳转,第二种是直接在www域名的主机配置文件中设定。
第一种方案:
Nginx下的规则:
server {
listen 80;
server_name itlearner.com;
rewrite ^/(.*)$ http://www.itlearner.com/$1 permanent;
}
Apache下的规则:
RewriteEngine On
RewriteRule ^(.*)$ http://www.itlearner.com/$1 [R=301]
第二种方案:
Nginx下的规则:
server {
listen 80;
server_name www.itlearner.com itlearner.com;
if ($host != 'www.itlearner.com' ) {
rewrite ^/(.*)$ http://www.itlearner.com/$1 permanent;
}
}
Apache下的规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.itlearner\.com$ [NC]
RewriteRule ^(.*)$ http://www.itlearner.com/$1 [L,R=301]
第一种方案略嫌麻烦,因为需要新建一个主机,一般直接使用第二种方案。但如果www下的rewrite比较多,访问量又非常大,这时,就建议采用第一种方案了。
谷歌都这点处理的比较好,如果网站主要来路是Google,这一点都可以不用做,因为使用网站管理员工具,可以设定首选域(位置在 网站配置->设置)。但是我仍然建议这么做,因为这样可以帮助其它搜索引擎和访问者了解到您网站的首选域。
百度在这个问题上的处理还是有点问题的,比较喜欢收录不带www的域名(即使不带www的域名一直以来都是301到带www的域名上),造成一个网站有两个首页。

PHP警告Cannot use a scalar value as an array的解决
win2003服务器使用WPS的COM组件的一些问题解决

