检查www域名配置的前后依赖,核心是沿着“DNS解析→服务器监听→证书覆盖→应用跳转→页面内链”这条链路逐段验证:前一段的输出必须正好是后一段的输入,任何一段缺失或指向错误,都会让www域名在浏览器或抓取工具里表现为打不开、证书报错或跳转到非预期主机。下面按准备、实施、验证、维护四步说明具体做法。
不要一上来就改配置,先把当前链路写出来。典型顺序是:
www 记录指向哪个IP或CNAME目标。example.com 与 www.example.com。每一步都记录“输入”和“输出”。例如DNS的输入是主机名,输出是IP;证书的输入是主机名,输出是是否匹配。这样后面验证时能定位是哪一段断了,而不是笼统地说“www有问题”。
最容易犯的错误是只在浏览器里打开首页,看到能访问就认为配置正确。浏览器会缓存、会自动补全、会跟随跳转,把中间环节的错误掩盖掉。正确做法是每段单独测:
nslookup www.example.com 或 dig www.example.com 看返回的IP是否与裸域一致或符合预期。若返回空或NXDOMAIN,说明前一段就断了,后面不用查。curl -I http://www.example.com 看是否返回状态码,而不是连接超时。连接失败通常是服务器未绑定该主机名或防火墙未放行。curl -Iv https://www.example.com 看证书主题和SAN是否覆盖www。若报证书名称不匹配,说明证书段是断点,与DNS无关。curl -I https://www.example.com 看返回的 Location 头指向哪里。若指向裸域,说明应用层做了反向跳转;若指向自身,可能造成跳转循环。判断原则:哪一段的输入输出对不上,问题就在哪一段。例如DNS正常、证书正常,但 curl -I 返回301到裸域,那问题在应用跳转配置,而不是域名解析。
单段通过不代表整体一致,需要做交叉验证:
curl -IL 跟随跳转,看最终URL和跳转次数。如果项目同时面向多个搜索引擎,要分别用各自的抓取或检测方式核对,不同搜索引擎对跳转和主机名的处理细节并不完全相同。robots.txt的抓取限制不等于可靠的索引移除,这一点在检查www与裸域并存时尤其要注意:两个主机名都可能被抓取,若只想保留一个,应通过跳转和canonical表达,而不是只靠robots.txt屏蔽。
域名配置不是一次性的。证书续期、服务器迁移、CDN接入、应用改版都可能改变其中一段。建议维护一份最小检查清单,在每次变更后执行:
把这几项写成脚本或固定命令,比每次凭记忆点开浏览器可靠。若发现某段输出变化,先判断它是上游变更导致还是本段配置被改,再决定修哪一段。
下一步:选一个你正在维护的域名,按上面的顺序把DNS、证书、跳转、页面四段的实际输出各记录一次,找出第一处输入输出不匹配的位置,从那里开始修。