当旧站地址多于新页、或新页数量反而增加时,一一对应本身就不成立。可行的做法是先建立“地址分组规则”,再决定哪些走单页映射、哪些走规则映射、哪些必须返回明确的失效状态,而不是硬凑一张全量对照表。
旧地址打不开新页,通常有两种解释。
解释一:新站信息架构确实收缩了。例如旧站按年份、栏目、标签生成了大量列表页,新站只保留少数聚合入口,那么多数旧列表地址本来就没有等价的单页,只能落到最近的上级栏目或统一说明页。
解释二:对应关系存在,但缺少可用的历史数据。旧站的路径规则、参数含义、内容归属可能记录在已停用的后台、日志或前同事手里。此时没有对照表,不等于没有对应关系。
区分这两种解释的证据并不复杂:抽取一批旧地址,检查它们是否共享同一段路径前缀、同一类参数或同一批内容主题。如果一批地址的路径结构高度一致,且新站存在一个能覆盖该主题的入口,那么更可能是“架构收缩”;如果同一前缀下内容主题杂乱、新旧栏目名称无法对齐,则更可能是“数据缺失”。
不必等拿到全部旧日志再动手。可以先用站内可见的旧链接、导航、站点地图和外部引用中出现的地址,整理出一份样本清单,按路径前缀分组。
/news/、/product/、/item/ 这类前缀。/news/ 下所有地址指向新站新闻栏目”。这个动作的结果会直接影响下一步:如果分组后大部分地址都能被少数规则覆盖,就优先实施规则映射;如果大量地址落在“无法归组”一栏,说明需要先补内容归属判断,而不是继续写跳转规则。
单页映射适合旧地址数量有限、每个旧地址对应一个明确新页、且这些页面承担主要入口作用的情况。它的代价是需要逐条维护,旧地址越多越容易遗漏。
规则映射适合旧地址成批出现、路径结构稳定、新站有统一承接入口的情况。它不要求每个旧地址都有独立新页,但要求规则本身可解释,例如同一栏目下的地址统一落到新栏目,而不是随机指向首页。
两种方式可以并存,但要注意优先级:先匹配单页映射,再匹配规则映射,最后处理未命中地址。这样能避免一条宽泛规则把本应落到具体页面的地址全部截走。
把所有旧地址都指向首页,会让访问者无法判断自己是否找对了地方,也会让后续排查失去信号。更可判断的处理是分层返回:
这里有一个假设例子:旧站有 200 条带参数的列表地址,新站只保留 5 个主题入口。假设其中 180 条能按参数中的主题词归入这 5 个入口,剩下 20 条参数含义不明。此时可先为 180 条写规则映射,把 20 条单独列出继续核对,而不是把 200 条全部指向首页。这个例子的数字只用于说明分组比例如何影响处理顺序,不代表任何真实站点的统计结果。
规则上线后,可以观察旧地址的访问是否落到预期落点、未命中清单是否在缩小、以及是否出现同一主题被拆到多个落点的情况。这些观察用于调整规则,而不是直接证明处理正确。
需要留意的反例是:旧地址请求量下降或归零,可能来自规则生效,也可能来自外部链接自然消失、旧入口被撤下、或访问者改用新入口。单看请求量变化,无法区分这些原因。因此更稳妥的做法是保留未命中清单,定期用样本地址复测,确认规则命中的落点仍与内容主题一致;一旦内容调整导致语义偏移,就回到分组步骤重新判断,而不是继续叠加跳转规则。