为什么越来越多的网站域名不加「www」前缀?

787 阅读3分钟

原因

因为http独大了。

www以前就是用来区分协议的。比如ftp,smtp,gopher,telnet,等等。以前互联网有各种各样的协议。写上www就代表是http服务。

现在,其他协议已经极少使用,网址几乎只剩下http这个用途了,当然,就没必要再用www了。

所以,我们经常看到的网址可能有 www.mhcoding.cn,ftp.hcoding.cn, mail.mhcoding.cn,等等的子域名形式。

如何省略www

有过网站建设的人可能都有这样的经验,当我们购买一个域名之后,要给这个域名做解析,解析的时候需要填写以下信息:

其中的主机记录部分,可以填写的内容如下:

也就是说,域名是可以配置如何解析的,当我们设置www作为域名前缀的时候,那么访问www.aliyun.com即可访问网站。当我们设置@作为域名前缀的时候,直接访问aliyun.com就可以访问网站了。

不加www有哪些好处和坏处?

不加 www 的裸域名好处主要是域名更加简短、容易记忆。

坏处就多了,讲几个主要的技术原因:

  1. 裸域名只能绑定 DNS 的 A 记录,不能绑定 CNAME 记录。设定为另外域名的别名。很多时候这对管理不是很方便,特别是使用第三方托管服务的时候。如果第三方迁移服务器导致 IP 地址变更,你必须自己去更改 DNS 的 A 记录。
  2. 裸域的cookie的作用范围太大。假如知乎也采用裸域,那么知乎所有 cookie 的作用范围就包括一级域名下的所有子域名

去掉www是否会影响网站的SEO(主要是排名和收录)?(前提是过去有加www)

早先裸域刚开始流行的时候确实有传闻说不利于 SEO,但现在看来似乎并无任何问题。如果有的话也是搜索引擎的 bug,给他们提一下他们应该会很乐意去改。

Google 的站长工具里面有工具可以帮助你做 URL 迁移的,可以有效的解决这个问题,再配合下一部分的跳转,不用担心对 SEO 有任何负面影响。

用什么方式去跳转最好?(如301)

不管你决定使用还是不使用裸域,最好不要在同时保留 www 前缀和裸域的 URL,这样既不方便用户的浏览器区分访问历史,也会对你做访问统计带来不少麻烦。

最佳的方式是采用 301 跳转,并且跳转的时候保留 URL 里域名后的全部内容。比如,如果你决定使用裸域 example.com,那么请务必将

www.example.com/foo/bar?spa…

301 跳转到

example.com/foo/bar?spa…

去。或者反过来,如果你决定不使用裸域,那么请务必将

example.com/foo/bar?spa…

301 跳转到

www.example.com/foo/bar?spa…

下面给出如何在 nginx 里面实现上述的跳转:

参考资料

1.漫话:如何给女朋友解释为什么有些网站域名不以www开头