没有一一对应,就不要硬造一一对应。可行的做法是先把旧地址按“是否仍有等值内容”分成三组,再分别用单页跳转、规则跳转和归档页承接;剩下确实无等值内容的旧地址,让它返回410或保留一个说明页,而不是全部塞到首页。下面以你手上那份旧地址清单为对象,说明怎么落到可执行方案。
打开旧站导出的地址清单,逐条只回答一个问题:这个旧地址上的内容,在新站里有没有一个页面能承担同样的信息任务。判断依据不是标题相似,而是用户点进来想解决的事是否还能解决。把结果标成三类:有等值页、有部分等值页、无等值页。
这一步会直接影响后面的动作。若跳过它直接写规则,最常见的后果是大量旧地址被送到一个泛栏目页,用户找不到原来的内容,接下来的跳出和二次搜索都无法反映真实需求。清单不必一次做完,可以先处理访问量靠前的那部分,但分类口径要统一。
对能明确找到对应新页的旧地址,逐条登记旧地址与新地址,做成一对一映射。数量在几十到几百条时,手工登记反而比写规则更稳,因为规则一旦覆盖过宽,会把本来该保留的地址一起带走。
动作上,把这份映射交给负责服务器配置或建站后台的人,落到301跳转。做完后抽几条用命令行确认响应头,例如:
curl -I https://example.com/old-path
看返回状态是否为301,以及Location是否指向预期的新地址。若返回200,说明跳转没生效,下一步应先查规则位置和匹配顺序,而不是继续加新规则。
旧地址是列表页、分页或带参数的详情页时,往往找不到单一等值页。这时按可识别的路径特征写规则,把同一类旧地址送到最接近的新栏目或新列表页。前提是这类地址的意图足够一致,例如都是同一分类下的文章列表。
需要留意两种成立条件。若旧地址带分页参数,跳到新列表首页会丢失翻页位置,用户需要重新找;若旧地址是详情页但新站已合并内容,跳到合并后的页面比跳到栏目页更合适。规则写完后,用几条不同参数的旧地址分别验证,确认它们没有全部落到同一个页面。
旧地址对应的内容已经彻底不再提供,且新站没有相近页面时,把它跳到首页只是把问题藏起来。用户带着明确预期进来,看到的是首页,通常会再搜一次或直接离开,这个动作不会告诉你原来的内容是否还有需求。
更可用的处理是返回410,明确告知内容已移除;若该旧地址仍有外部链接或用户可能再次访问,可以保留一个简短说明页,写清内容已下线,并给出当前可用的相近栏目入口。这里要注明假设:说明页只适用于你确实判断该内容不再提供的情况,若只是暂时迁移,应回到单页跳转处理。
映射上线后,隔一段时间回看服务器访问日志,重点看两类记录:仍返回404的旧地址,以及跳转后被大量访问的目标页。前者说明清单有遗漏,后者说明某条规则可能覆盖过宽。
需要注意,404数量下降不能单独证明映射正确,它也可能只是爬虫暂时减少了抓取;同样,某个目标页访问上升也不能直接归因于跳转设计得好,还可能来自其他入口。把日志现象和清单分类对照,才能决定下一步是补映射、收窄规则,还是把某个旧地址改回410。处理完这一轮,再更新清单状态,下一轮只处理仍未归类的地址。