改动前保存原始状态,核心是留下三类可回滚的证据:原始URL与规范指向的完整清单、改动前的页面响应与HTML源码、以及服务器或CDN上的重定向规则副本。三者缺一,回滚时就只能靠记忆重建,容易把本来正常的页面改坏。
这套做法适用于已有页面或项目上做URL规范化调整,例如统一大小写、去掉或补上结尾斜杠、把带参数版本指向干净版本、在HTTP与HTTPS之间选定唯一版本、更换规范标签指向。它不适用于尚未上线的全新站点,那种情况直接按目标结构搭建即可。
前提是你能拿到改动前的可访问状态。如果页面已经无法访问、服务器配置已被覆盖且没有版本记录,那么“保存原始状态”就只能从外部快照、日志或搜索引擎缓存中尽力还原,可靠性明显下降。因此保存动作必须在改动之前完成,而不是改动之后补做。
.htaccess、Nginx配置、CDN或反向代理中的跳转规则完整复制一份,标注文件路径与生效层级。保存位置要与生产环境分离,例如单独的版本库或归档目录。只把备份放在同一台服务器上,配置被覆盖时备份可能一起丢失。
curl -I记录响应头,确认状态码与跳转链;对关键页面额外保存完整HTML。假设一个站点原先同时存在/Page与/page两个可访问版本,计划统一为小写。改动前应记录两个URL各自的状态码与规范标签,改动后核对/Page是否返回指向/page的跳转,且/page本身返回200。如果改动后/Page返回404而不是跳转,说明规则写错或未生效,应回滚而不是继续叠加新规则。
保存是否合格,看三点。第一,随机抽取若干原始URL,能从归档中查到它改动前的状态码与规范指向,说明清单完整。第二,按归档中的回滚步骤操作,能在测试环境还原出改动前的跳转行为,说明规则副本可用。第三,改动后的抓取结果与原始清单能逐项对应,没有出现原始清单里不存在的新URL,说明改动范围可控。
需要区分“可能原因”与“已经定位的原因”。改动后某页面返回404,可能是跳转规则未生效,也可能是该URL本来就不存在、只是之前被软404掩盖。只有对照改动前的状态码记录,才能判断是本次改动引入的问题还是原有问题。没有原始记录时,不要断言唯一原因。
另外,保存原始状态不等于保证收录或排名。robots.txt中的抓取限制不等于可靠的索引移除,站点地图也不保证收录。如果改动涉及阻止抓取或提交移除请求,应把这类操作与URL规范化分开记录,分别核对。
现在就可以对目标站点执行一次抓取,导出URL清单与状态码,并把服务器与CDN上的跳转规则复制到生产环境之外的归档目录。完成这一步之后,再开始实际的规范化改动。