博客导读网

一个让你随便看看的地方

首选域的选择(根域名如何正确的跳转到www域名)

推荐
9Enjoy

一个网站,用户访问到的其实可能有两个版本,一个是带www的,一个是不带www的。如:www.itlearner.com和itlearner.com。内页同样如此。

一般来说,经常见到的应该是带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的域名上),造成一个网站有两个首页。

Tags - , ,
原文地址:http://item.feedsky.com/~feedsky/9enjoy/~1348731/552084941/1353774/1/item.html

9Enjoy的其他文章
json_encode后的中文不编码成unicode 分享比file_get_contents稳定的curl_get_contents
ArrayOf_xsd_string格式在php下的处理 win2003服务器使用WPS的COM组件的一些问题解决
Trying to clone an uncloneable object of class Imagic的解决 PHP警告Cannot use a scalar value as an array的解决
mongodb在windows下的安装 你见过ORDER BY -title DESC这种用法吗?
sphinx用c写的扩展性能还不如php写的api? 提高define性能的php扩展hidef的安装和使用
更多...

© 2010 博客导读网 BlogABC.NET 本站所有内容皆由网友推荐而来,所有博文的版权归原作者所有,如有冒犯,请邮件告知。uncracker#gmail.com