这是 WordPress,特别是 WooCommerce,里一个非常常见又烦人的问题:每次更新插件、主题,甚至只是更新翻译文件之后,网站的链接突然就全都失效了,点什么都是 404 页面找不到。
为什么 WordPress 的固定链接会突然崩掉?
WordPress 用的是 .htaccess
文件(如果你的网站是在 Apache 服务器上),或者 NGINX 的重写规则,把那些看起来很友好的链接(比如 /wordpress/best-hosting/
)转换成系统内部能识别的路径。
这些固定链接“挂掉”了,页面就会全都变成 404 错误,通常是以下几种原因:
-
WordPress 的重写规则和你现在用的插件、主题或者某些设置不一致了。
-
.htaccess
文件没能正确更新,甚至可能被破坏了。 -
更新插件(尤其是像 WooCommerce、SEO 插件、缓存、多语言插件)或者主题、翻译文件后,有些规则变了或者需要新的规则,但 WordPress 并不会总是自动处理好这些。
-
如果你还原了网站备份、迁移了网站、换了域名或者改了文件夹路径,也可能导致这些规则错乱,不再同步。
反正只要有大改动,固定链接就有可能抽风。
什么导致链接出问题?
下面这些情况,是最常见的问题:
-
插件或主题添加了自定义内容类型或分类法:比如 WooCommerce 会添加“产品”、”产品分类”这些新的类型和链接结构。
-
更改了固定链接设置:比如你改了产品或分类页面的 URL 格式。
-
多语言插件(像 WPML)或 SEO 插件:这类插件会对 URL 做各种操作,容易出问题。
-
缓存插件:有些会改动或清空
.htaccess
文件,导致重写规则丢失。 -
网站迁移、还原备份或搬服务器:这类操作容易导致链接配置不一致。
-
.htaccess
文件权限不对:如果 WordPress 没权限修改这个文件,就不能更新重写规则。
怎么解决 WordPress 更新后出现的 404 错误问题?
其实大多数情况下,这种问题的解决办法很简单:重新生成固定链接(permalinks)。因为有时候 WordPress 并不会自动察觉那些变化。
最快速、最简单的方法:
-
登录你的 WordPress 后台;
-
进入菜单「设置 → 固定链接」;
-
不用改任何东西,直接点击页面底部的「保存更改」。
这个操作会强制 WordPress 重新生成重写规则,把 .htaccess
文件更新一遍。通常这样做之后,链接问题(75%)就能恢复正常了。

这个问题能彻底避免吗?
说实话,完全不发生这种错误几乎不可能,但你可以做一些事,来减少它发生的机率:
-
检查
.htaccess
文件权限:确保 WordPress 有权限写入它。哪怕是暂时的,在更新或修改设置的时候也要能写。 -
如果用的是 NGINX:那就要自己确认
nginx.conf
里的 rewrite 规则配置得当,WordPress 不会自动改它。 -
只用必要的插件和主题,并保持更新:越少插件,冲突越少,出错概率也就越低。
-
避免使用多个功能重复的插件:比如别装好几个 SEO、缓存、多语言插件,这类插件改 URL 的可能性高,互相打架也多。
-
检查安全插件或自定义代码的设置:有些安全措施可能会阻止
.htaccess
被写入,间接导致固定链接失效。