http://domains.tumblr.com 这个域名,之后如果 Tumblr 更改 IP 地址,他们只需要重新设置 http://domains.tumblr.com 这个域名的 A 记录,而无需要求每个用户去更改 DNS 记录。
这个技术上的限制导致许多大型的第三方服务商不支持使用裸域。典型的如 Google 的服务,现在都不能使用裸域。Google 的服务用户基数大,不得不采用 DNS 级别的分布式,使用到的 IP 地址太多,而且变动大。让用户绑定 A 记录的话不利于负载均衡,维护起来也是几乎不可能完成的任务。同理,大部分 CDN 也不支持裸域。
http://zhihu.com 下的所有子域名。也就是说访问 http://foo.zhihu.com 和 http://bar.zhihu.com 的时候都会带上 http://zhihu.com 裸域页面设置的 cookie。从安全、隐私、可扩展性、以及管理的角度而言,这对很多大型网站来说是不可接受的。
总的来说对于大访问量或多子域名的网站来说,不建议使用裸域。小流量或子域名少的网站的话就看个人爱好了。我挺喜欢裸域的。最近几年流行起来的「单页网页应用」 ( Single Page Web App ) 也是以采用裸域的居多,Twitter 算是一例。
(前提是过去有加 www)早先裸域刚开始流行的时候确实有传闻说不利于 SEO,但现在看来似乎并无任何问题。如果有的话也是搜索引擎的 bug,给他们提一下他们应该会很乐意去改。Google 的站长工具里面有工具可以帮助你做 URL 迁移的,可以有效的解决这个问题,再配合下一部分的跳转,不用担心对 SEO 有任何负面影响。
(如 301)不管你决定使用还是不使用裸域,最好不要在同时保留 www 和非 www 前缀的 URL,这样既不方便用户的浏览器区分访问历史,也会对你做访问统计带来不少麻烦。最佳的方式是采用 301 跳转,并且跳转的时候保留 URL 里域名后的全部内容。比如,如果你决定使用裸域 http://example.com,那么请务必将 http://www.example.com/foo/bar?spam=egg 301 跳转到 http://example.com/foo/bar?spam=egg 。或者反过来,如果你决定不使用裸域,那么请务必将 http://example.com/foo/bar?spam=egg 301 跳转到 http://www.example.com/foo/bar?spam=egg,这样的跳转需要在 web 服务器里单独配置,很多 DNS 管理界面提供的简单的跳转到新域名的根目录无法实现这样的功能(仅仅跳到 http://example.com/ ) ,对用户体验和搜索引擎 SEO 而言都是非常糟糕的。
下面给出如何在 nginx 里面实现上述的跳转:
1234567891011 | # redirect http://www.example.com to http://example.comserver { server_name www.example.com; return 301 $$scheme://http://example.com$$request_uri;}# redirect http://example.com to http://www.example.comserver { server_name example.com; return 301 $$scheme://www.$$host$$request_uri;} |
|---|
综上,总结个小结论,即加或不加,必须要确定一种,相应地,另一种形式务必通过 301 重定向到前者的地址,这样就统一定向到唯一的主打域名上。另外,最好还是加上 www 前缀显得正式和规范。
在确定使用方案后,接下来就开始操刀域名的更换了,site域名虽然便宜,但接受度较差,在QQ及微信内均已无法直接访问,考虑到长远的发展,现已购入新的 COM 域名,稍后给出详细的更改过程。