站点原来在 /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,等于告诉蜘蛛这些页面不存在,跳转必须保留路径层级,哪怕新结构已经完全不同。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。