把 example.com 敲进地址栏能打开,前面加个 www 也能打开,很多人就默认这是同一个网站的两条路。可在 DNS 那边,它们就是两个完全独立的名字,各自一条记录,各自要证书覆盖。域名输入方法这事看着像用户习惯问题,实际是建站第一天就得定的技术路线,定歪了后面证书报错、内链打架、收录分散,一样样来找你。

域名输入方法里最容易含糊的一步:www 是个二级域名
拆开看,www.example.com 里面 example.com 是根域,也叫 apex,www 是挂在它下面的主机名。层级上它就是二级域名,跟 blog.example.com、mail.example.com 是同一层的东西,没有谁比谁特殊。所以省掉 www 不是删三个字符那么简单,你得让根域自己也有条记录指向服务器,通常是 A 记录或者 AAAA 记录。有些面板里根域那一栏写的是 @ 符号,第一次见容易蒙,那个 @ 就是根域的意思。
根域和 www 各自解析,意味着它们完全可以指向不同的机器。早年虚拟主机就这么玩,www 走一台,根域跳去别处。现在很少有人这么折腾,但知道它们不是一回事,排查的时候才不至于抓瞎。
以前为什么非得写 www
那会儿一台服务器上堆几百个站,靠请求头里的 Host 字段分辨你要哪个站,www 就是最原始的那层名字。再一个 Cookie 的作用域,早年浏览器对不带点的主机名处理得稀里糊涂,统一写 www 能少踩点坑。这些理由现在大多不成立了,可用户手上有肌肉记忆,地址栏里下意识就敲 www,你拦不住,只能顺着接住。
顺带提一句,分享场景里 www 反而累赘。二维码印在物料上、名片上、口播念出来,少三个字符清爽不少。这也是现在很多人倾向于根域当主版本的原因,跟技术没啥关系,纯粹是传播效率。
两个都能打开,反而是隐患
见过太多站,带 www 和不带 www 都返回 200,内容一模一样。用户觉得方便,搜索引擎看到的是两份同样的东西,它自己挑一个当主版本,挑哪个不由你说了算。万一挑的是你内链少的那份,本来攒的权重就散着,排名波动你还找不到原因。
正确姿势是选一个当正主,另一个用 301 送过去。检查方法很土但管用,两行命令就能看出端倪:curl -I https://example.com 和 curl -I https://www.example.com,看返回码是不是 301,Location 头指向哪儿。两个都回 200,说明你压根没做统一。
证书只认它写过的名字
单域名证书签的是 example.com,那 www.example.com 就不在保护范围里,浏览器直接红脸警告。通配符证书 *.example.com 覆盖所有子域,可根域本身不在其中,这个误会最常见,买完才发现根域报错。想两个名字都保,签的时候把两个都写进 SAN 列表,或者直接买多域名证书。具体支持哪些形式,以服务商或官方页面说明为准,别听卖家口头承诺。
接了 CDN 的话还有一层,回源时的 Host 头和证书要跟源站对得上,配错的表现是 404 或者握手失败,看着像服务器挂了,其实是配置串了。改完记得两套名字都测。
根域挂 CNAME,这坑不新鲜
老的 RFC 里对 apex 挂 CNAME 是有意见的,因为根域必须跟 SOA、NS 记录共存,CNAME 又要求独占。有些 DNS 商搞了个拉平处理绕过去,解析时把 CNAME 一路追到底再返回 A 记录,用起来跟 A 记录没差别。但不是每家都提供这功能,换 DNS 商的时候这里最容易翻车,搬完发现根域解析没了,网站直接打不开。
还有一个更隐蔽的,根域 CNAME 出去之后,MX 记录没法跟它共存,邮箱就哑了。所以域名在跑企业邮箱的,根域老老实实写 A 记录,别图省事挂 CNAME。
301 往哪边跳,看你的历史包袱
新站、域名短、品牌就是那几个字母,我倾向跳到不带 www,短一截,念着也顺。反过来,站跑了几年,外链和收录大多落在 www 上,那就保留 www,让根域往过跳。判断依据别拍脑袋,翻翻搜索控制台里带链接的页面,看历史地址长什么样。
定了就别回头。301 是永久的,改一次搜索引擎要重新算一遍;302 是临时的,别拿来当永久跳用,容易被当成临时判断,权重传不过去。
内链也得跟着统一。站内链接一半写 www 一半不写,等于自己给自己制造跳转,每次点击多绕一圈。模板里的 logo 链接、导航、面包屑、sitemap 里的地址,全都对齐成你选的那个版本,这件事比想选哪个更费工夫,但必须做。
自己动手验三处
第一处,curl -I 跑两个版本,看状态码和 Location。第二处,dig example.com 和 dig www.example.com,看解析到的是不是同一台机器、同一个 IP。第三处,浏览器点开小锁看证书覆盖了哪些名字,或者用 openssl s_client 直连看一眼。三处都过了,这件事基本就算做完了。
本地想提前测也行,hosts 里写一行 127.0.0.1 example.com www.example.com,不用等 DNS 生效就能验证跳转规则。测完记得删掉,我有回忘了删,排查了半天以为解析出问题,最后发现是自己挖的坑。至于备案按哪个名字填,各接入商要求不完全一样,按他们页面上的说明来。
说到底就一句话:一个当门牌,另一个 301 送过去,DNS 和证书两头都覆盖住,内链别打架。做完这几样,用户在地址栏里敲哪种形式,落到的都是同一个地方——剩下的时间拿去写内容,别在这三个字符上反复纠结。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!