先给有条件的结论:如果旧地址能按规则分组,且每组都能指向一个语义稳定的新页,就应该用“规则映射+例外清单”,而不是追求逐条一一对应。只有当旧地址本身承载了彼此不可合并的查询意图时,才需要为它们分别保留可访问的落点。判断依据不是旧地址数量,而是旧地址背后的内容主题、参数结构和外链分布。
历史地址大致会落在三种状态里,处理方式完全不同。
实际动作:先导出旧地址清单,按路径前缀和参数名分组,给每组标注“同主题”“已合并”“已删除”“参数页”四种状态。这个标注结果直接决定下一步是写规则还是列例外,避免一上来就逐条配置。
规则映射成立的前提是旧地址有稳定的路径规律,比如同一栏目下的文章、同一批产品的详情页。此时用路径前缀或正则把一批旧地址指向新栏目或新详情页,维护成本低,后续新增旧地址也能被同一条规则覆盖。
例外清单成立的前提是这些地址无法被规则安全覆盖,通常是因为它们的外链集中、查询意图独立,或者新旧主题只是部分重叠。把它们单独列出并人工指定目标,比强行套规则更可靠。
反例:如果旧地址虽然路径规律整齐,但每个地址对应的是不同城市、不同型号或不同年份的独立查询,把它们全部规则映射到一个总览页,会让原本能直接回答问题的访问落空。这时规则整齐反而是误导,应该退回例外清单逐个处理。
运营、开发、内容负责人对“这个旧地址该去哪”经常有不同判断:运营看流量来源,开发看路径规律,内容负责人看主题归属。与其争论,不如把每个争议地址变成一行可核对记录,至少包含四项:旧地址、旧页主题、新页候选、判断依据。
判断依据要写成可验证的事实,例如“旧页标题与某新页标题指向同一产品”“旧地址在站内被三个栏目引用”“该地址带筛选参数且筛选结果仍有独立内容”。有了这四列,分歧就变成对事实的核对,而不是对偏好的争论。核对完成后,仍无法达成一致的地址单独挂起,不阻塞其余映射上线。
假设某站旧版有 /product.php?id=101 到 /product.php?id=180,新版改为 /products/name 结构。若这 80 个旧地址都能在新版找到同名产品页,就适合用一条规则把 id 参数映射到对应新路径;若其中 5 个产品已下架且没有替代页,这 5 个应进入例外清单,返回失效状态或指向同类产品汇总页,而不是跟着规则一起跳到新详情页。
这里的关键假设是“新旧产品存在可核对的名称对应关系”。如果连名称都无法对应,规则映射就失去依据,必须先补一份人工对照表。
映射配置完成后,不要只看旧地址是否还能打开。更有价值的检查是:旧地址最终落到的新页,是否与旧页主题一致;例外清单里的地址是否按预期返回失效或汇总页;带参数的旧地址是否被正确归类。
如果发现某组规则映射后的落点主题明显偏离,说明分组依据需要修正,应把这组拆回例外清单重新指定。反过来,如果例外清单里大量地址其实符合同一条规律,就说明可以合并成规则,减少后续维护。这个“先核对落点语义,再决定合并或拆分”的动作,比单纯统计跳转成功数量更能反映映射是否设计合理。