改动301转向之前,原始状态至少要保存三类内容:旧URL与目标URL的完整对应关系、当前HTTP响应头、以及页面内容或模板的可见证据。保存的目的是为了在改错后能回退、能对比、能向他人说明改动前后差异。只截图页面外观通常不够,因为301转向本身发生在服务器响应层,页面外观无法证明响应状态码和跳转目标。
301转向可能配置在服务器、CDN、反向代理、应用路由或建站平台后台。不同位置对应不同的保存对象,动手前先定位配置生效的位置。
如果无法确定配置位置,可以用命令行请求一个即将改动的旧URL,观察响应头中是否出现server、cf-ray、x-开头等特征字段,辅助判断请求经过了哪些层。这只是线索,不是最终结论,需要结合你能访问的配置入口核对。
保存原始状态最直接的方式是抓取改动前的HTTP响应。对每个将要改动的旧URL执行一次请求,只看响应头,不跟随跳转。
命令行示例(假设旧地址为/old-page):
curl -I https://example.com/old-page
需要记录的关键字段:
Location:当前跳向哪个目标,是相对路径还是绝对URL,是否带参数。Location指向的目标再请求一次,看是否继续跳转。多级跳转容易在改动后形成循环。Cache-Control、Age等,用于判断浏览器或中间缓存是否会影响你看到的测试结果。把每个URL的状态码和Location整理成表格保存,这是改动后对比的基准。不要只测首页,要覆盖实际会改动的URL集合。
301转向的核心是映射关系,映射清单是回退和核对的基础。清单至少包含四列:旧URL、目标URL、当前状态码、备注。
建立清单时注意几个容易出错的点:
假设一个站点有20个旧URL要迁移,清单应逐条记录,而不是只写“栏目页全部跳首页”这类描述。描述性记录无法在出现问题时定位到具体某一条。
响应头和映射清单之外,还要保存能证明页面内容状态的证据,用于判断跳转是否指向了正确目标。
可回退副本要能直接还原,而不是只留一段文字描述。配置文件复制原文件即可,后台规则导出为文件或完整截图。截图需要包含规则的全部字段,不能只截一部分。
按以下顺序执行,可以在动手前把风险降到较低水平:
判断结果的方式很直接:如果改动后某个旧URL的状态码或Location与清单预期不符,就对照保存的原始状态定位差异。如果目标URL返回404或指向无关页面,说明映射写错,应回退到保存的副本再修正。如果出现多级跳转或循环,检查规则顺序和Location指向。
需要区分“可能原因”和“已经定位的原因”。例如改动后旧URL仍返回旧状态,可能是缓存未过期,也可能是规则未生效或请求没经过该层。此时应先用带随机参数的请求排除缓存干扰,再逐层核对配置,而不是直接断定某一层出了问题。
下一步:在真正修改任何一条301规则之前,先完成上面第1步和第4步,即抓取全部旧URL的响应头并保存配置副本。这两项完成后,再开始改动,改动后立即用同一批URL做对比验证。