当旧系统的字段因为编码、权限或数据缺失无法完整迁入时,不要试图把所有链接原样搬过去。可行的做法是:先为每个字段判定“是否影响用户到达目标页面”,再按两种条件分别处理——能确认目标地址的保留为可点击链接,无法确认的降级为纯文本并留下可追溯的说明。这样做的结果是:迁移后不会出现大量死链,但你也不能据此断定所有内容都已完整保留。
决定保留项的第一步不是看字段数量,而是看每个字段能否解析出一个明确的目标地址。这里有两种成立条件:
https://example.com/a,或存的是相对路径 /a 且你能确认站点根地址。此时可以保留为 <a href="..."> 链接。12345 或 detail?id=12345,而旧系统的路由规则已不可查。此时不应猜测拼接,先降级为纯文本。这两种条件的区别决定了后续动作:条件一可以直接生成链接,条件二需要先补证据,否则任何拼接都可能指向错误页面。
在缺少完整数据和权限的情况下,仍可执行的最小动作是导出一份字段清单,逐条标记“可解析目标”“不可解析目标”“疑似可解析”。具体步骤:
http、https)或可确认的根路径。<a href="目标地址">可见文字</a> 输出;对不可解析的记录,只输出可见文字,不包裹链接标签。这个动作的结果是:迁移后的页面不会因为猜测拼接而产生大量 404。下一步你可以把“疑似可解析”清单交给拥有旧系统权限的人核对,而不是继续在无权限的情况下强行补全。
决定保留哪些字段时,依据应当是“用户点击后能否到达有效内容”,而不是“字段在旧库里是否存在”。可以区分以下几种原因:
这里要说明一个不能推出的结论:抓取量或请求量归零,并不能单独证明某个字段处理正确。它也可能是页面本身未被访问、入口被移除或统计口径变化造成的。因此,字段是否保留,应以目标可达性和证据链为准,而不是以某个统计数字为准。
有一种例外值得单独说明:如果旧系统仍在运行,且你能确认它会在迁移期间继续提供跳转服务,那么可以暂时保留指向旧系统的链接,作为过渡。但前提是旧系统确实仍在服务,并且你清楚过渡期结束后需要替换。若无法确认旧系统状态,就不要把“暂时保留”当作长期方案。
假设一个短例子:旧库中某字段值为 view.php?id=88,你没有旧系统的路由规则,但知道旧站仍在运行。此时可以暂时输出 <a href="https://旧站域名/view.php?id=88">,同时标记为待替换。若旧站已停用,则只输出纯文本,不生成链接。这个例子的数字仅用于说明比较方法,不代表真实项目结果。
完成字段分级和链接输出后,下一步是抽查:从迁移后的页面中随机选取若干保留项,手动点击,确认目标可达;再选取若干降级项,确认它们没有残留链接标签。若抽查发现降级项中仍有可确认的目标地址,就把它移回保留项并补上 <a> 标签;若保留项中出现死链,就把它降级为纯文本并记录原因。这个循环能帮助你在数据和权限不完整的情况下,仍然做出可复核的保留决定,而不是一次性赌一个完整迁移。