把分类「前端」改成「Web 前端」,别名从 frontend 改成 web-frontend,旧地址立刻 404,站内还有 40 多条内链指着旧地址。乍看像缓存或者权限的锅,追下去往往不是。

RewriteRule ^category/frontend/?$ /category/web-frontend/ [R=301,L]

追下去是这么回事:改别名不会自动生成跳转,重写规则里的旧路径也被清掉,旧链接没有任何承接。缓存插件还会继续输出旧分类页一段时间。

碰到「分类改名 404」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。

同一份配置存在多处的,先确认改的是被加载的那一份。

具体做法是,改名前记下旧别名 准备好跳转规则;用 301 把旧路径指到新分类 别直接删掉;全站搜一遍旧地址 把正文内链一起替换。

验收就看一点,旧地址返回 301 并落到新分类页,内链检测里没有 404。

作者 9823189