改动前保存原始状态,核心是留下三份可回看的资料:改动前的链接清单、页面当时的响应状态、以及改动操作记录。只截图不够,因为截图无法批量比对;只记在脑子里更不行,因为死链接处理往往要跨天甚至跨人。正确做法是把“现状”固化成文件,再动任何链接、重定向或页面内容。
针对死链接,原始状态至少包含四类信息,缺一项后面就可能说不清问题从哪来:
如果目标页面本身要删除或改地址,还要额外保存它原来的 canonical 标签、robots 元标签和重定向规则。这些信息决定了后续能否正确恢复或替换。
假设你已有一份 URL 列表文件 urls.txt,每行一个地址。改动前执行下面的命令,把状态码和最终地址存下来:
while read u; do curl -o /dev/null -s -w "%{http_code} %{url_effective}\n" "$u"; done < urls.txt > before-status.txt
这条命令逐条请求并输出状态码与最终 URL。适用条件是你能在本地或服务器上运行 curl,且目标站点允许正常访问。判断结果时注意:输出 200 表示当时可访问,301 或 302 表示当时已有跳转,404 或 410 表示当时已不可用。如果输出为空或连接失败,说明请求本身没完成,不能当作“页面正常”。
把 before-status.txt 和 urls.txt 一起存档,并标注保存时间。之后任何改动都可以用同样命令生成 after-status.txt,逐行对比差异。
状态码只说明目标地址是否可达,不说明链接出现在哪里。改动前还需要保存来源页的 HTML,并标出死链接所在位置。
nofollow 或 target 属性。<a> 标签,并保存渲染后的 DOM 快照。这样做的目的是:改动后如果发现某个位置漏改或改错,可以对照原始源码逐处还原,而不是靠印象重新找。
保存完资料后,动手前再核对三项,避免把“保存”变成“已经改过”:
这三项检查的适用条件是:改动会影响线上可访问链接,或改动后需要向他人说明原因。如果只是本地测试且不涉及线上,可以适当简化,但仍建议保留 URL 列表和状态输出。
假设最终要交付的是“死链接已修复且未引入新问题”这个结果,那么改动前保存的原始状态就要能支撑三件事:证明修复前确实存在死链接、证明修复只改了目标链接、证明修复后状态符合预期。因此,原始状态文件应至少保留到验收完成之后,而不是改完就删。
下一步:先列出你准备改动的所有 URL,生成 urls.txt,执行上面的 curl 命令保存 before-status.txt,再导出对应页面的 HTML 和截图。完成这些之后,再开始改链接或加跳转。