当遗留系统无法修改模板时,二级域名设置能做的调整通常只剩三类:在解析和网关层改变流量去向、在页面输出层做有限注入、或者放弃改造并把该二级域名降级为跳转或归档入口。判断边界的关键不是“还能不能改”,而是改动是否触及模板渲染链路;只要模板不可动,任何依赖模板内变量、路由或组件替换的方案都不成立。
保留原系统的含义是继续让遗留程序生成页面,但把二级域名的入口、路径和响应头控制权移到模板之外。可行位置包括 DNS 解析、反向代理、CDN 边缘规则和 Web 服务器配置。这些层能做的事有明确上限:可以改状态码、改跳转目标、增删响应头、按路径分流、重写 URL,但不能改变模板输出的正文结构。
一个实际动作是先确认请求到达模板前经过哪些层。假设某站点把 legacy.example.com 指向旧应用,前置一层 Nginx。若在 Nginx 中把 /old-path 重写到新路径,结果取决于旧应用是否按新路径重新匹配路由:若匹配,页面正常;若不匹配而返回 404,说明重写超出了该应用的路由假设,下一步应改为在边缘层直接返回跳转,而不是继续加深重写规则。这个结果会直接决定后续是继续用代理层,还是必须回到应用层。
保留方案还有一个常被忽略的边界:robots.txt 的抓取限制不等于可靠的索引移除。如果遗留系统只能改 robots.txt 而不能改模板,那么对已经收录的 URL,限制抓取可能只是阻止后续抓取,并不能保证从索引中消失。此时应把 robots.txt 当作抓取管理手段,而不是索引移除手段,索引层面的处理需要另找可执行的出口。
当模板不可改但页面输出可被外层改写时,可以在响应流中插入少量标签,例如在 <head> 内追加规范链接、在 <body> 末尾追加一段说明。这类改写适合处理“只需要补一个信号”的场景,不适合处理“需要重构整页结构”的场景。
适用前提有三个:注入点稳定存在、注入内容不依赖模板变量、注入后不影响原页面的脚本执行。若原页面由前端框架在客户端渲染,服务端注入的标签可能在渲染后被覆盖,此时改写效果不稳定,应优先考虑跳转而非注入。
需要明确不能推出的结论:站点地图不保证收录,提交新的 sitemap 只能说明你表达了希望被抓取的意愿;HTTPS 不保证安全无漏洞或排名,把二级域名从 HTTP 切到 HTTPS 只解决传输加密,不解决遗留系统的模板限制。若把这两件事当作“改完就好了”的依据,后续判断会偏离实际。
退出不是失败,而是一种边界清晰的取舍。当遗留系统既不能改模板,也不能在外层稳定注入,且该二级域名承载的内容已可由主站或其他路径替代时,把二级域名改为整站跳转或静态归档是可行方向。
退出的动作会影响下一步:一旦选择整站跳转,后续排查重点就从“模板能否改”转为“跳转链是否过长、是否存在循环”;一旦选择静态归档,重点转为“归档页是否仍引用已失效的资源”。
在没有完整日志、没有应用权限的情况下,仍可做的第一件事是抓取该二级域名的几个代表性 URL,记录状态码、响应头和正文首屏是否包含模板特征。这个动作不需要后台权限,结果能回答一个具体问题:当前返回是来自遗留应用,还是已被前置层接管。
若状态码为 200 且正文含明显模板痕迹,说明请求仍进入旧应用,保留和改写方案需要先解决外层拦截;若状态码为 301 或 302,说明已有跳转存在,此时应核对跳转目标是否与预期一致,而不是继续讨论模板改造。若返回 404 或 5xx,则要先区分是路径不存在还是应用异常,这两者的后续动作完全不同。
需要提醒的是,请求量、抓取量或某项统计归零不能单独证明处理正确。归零还可能来自抓取预算变化、外部链接失效、屏蔽规则误伤或统计口径调整。把它当作唯一证据会掩盖真实原因。缺少数据时,最小动作的价值在于缩小范围,而不是给出结论。
面对无法改模板的遗留系统,合理的顺序是先判断改动是否落在模板之外,再判断外层是否稳定可控,最后才决定保留、改写还是退出。若外层可控且注入点稳定,改写是成本较低的选择;若外层可控但注入点不稳定,跳转比注入更可靠;若外层也不可控,退出通常比继续在应用层寻找不存在的入口更实际。
把这三类边界写清楚,比罗列更多工具更有用,因为它直接决定了下一步该验证什么、以及哪些结论现在还不能下。