站点原来在 /blog/ 下,搬到根目录后图片和文章都能打开,部分栏目页却跳到了根目录首页。

排查方向其实有限,先把可能性排一排。跳转规则没有保留子路径,全部指到首页;静态资源路径还带着 /blog/ 前缀;数据库里的附件地址没有更新。

第一件事是确认旧子目录地址的跳转目标

curl -sI https://www.example.com/blog/cat/ | grep -i location

然后按子路径原样跳转

rewrite ^/blog/(.*)$ /$1 permanent;

更新附件与站点地址

UPDATE wp_options SET option_value='https://www.example.com' WHERE option_name='siteurl';

命令输出我都留了记录,免得改完记不清原来的值。

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

恢复的判定其实很直接。旧子目录的所有路径都能跳到对应新地址,图片和栏目页全部正常。

容易忽略的是,全部跳首页会被判成软 404,等于告诉蜘蛛这些页面不存在,跳转必须保留路径层级,哪怕新结构已经完全不同。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189