对照测试环境与线上的 HTTP/HTTPS 配置,核心不是看“有没有小锁”,而是逐项比对协议跳转、证书链、混合内容、抓取入口和响应头。两边不可能完全一致,但影响收录与安全判断的关键项必须能解释差异。下面是一份可执行清单,每项都给出查什么、怎么查、结果说明什么。
开始前先确定:测试环境是独立域名、子域名,还是 hosts 指向的同一域名?线上是否强制 HTTPS?口径不同,结果没有可比性。
curl -I 分别请求测试与线上的同一路径,记录状态码和 Location 头。HTTP 与 HTTPS 对比最容易被忽略的是跳转链和证书覆盖范围,这两项直接决定用户和爬虫拿到的是哪个版本。
curl -IL http://example.com(假设域名)跟踪每一跳,看是否出现 HTTP→HTTPS→带 www 的多级跳转。结果说明什么:跳转超过两跳或存在回跳,可能让抓取浪费在中间地址上。openssl s_client -connect 域名:443 -servername 域名,看是否返回完整链和有效期。结果说明什么:测试环境常用自签证书,浏览器会拦截,不能据此判断线上证书问题。线上页面若在 HTTPS 下加载 HTTP 资源,浏览器会标记为不安全或直接拦截,这是测试环境经常漏掉的一类问题。
http://。HTTP 与 HTTPS 在抓取层面常被当成两个站点,配置不一致会造成重复或遗漏。
http://域名/robots.txt 与 https://域名/robots.txt,比对是否允许抓取。注意 robots.txt 的抓取限制不等于可靠的索引移除,它只约束遵守规则的爬虫。把两边的响应头放在一起对比,能快速定位差异来源。
Strict-Transport-Security、Content-Type、缓存头。curl -I 或浏览器网络面板导出两边结果并排查看。完成对照后,下一步是把差异分成“必须一致”和“允许不同”两类:跳转目标、canonical、sitemap 协议、混合内容属于必须一致;证书类型、HSTS 预加载状态可按环境区分。对必须一致的每一项,在测试环境修正后重新用同一命令验证,再与线上结果并排确认,而不是只看页面能否打开。