You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress子目录多站点新增子站重定向循环故障求助

WordPress子目录模式多站点新增子站重定向循环修复

这个问题和主站部署在子域名没有关系,子域名上跑子目录模式多站点是官方原生支持的架构,你之前加的Cookie配置仅对后台登录跳转有效,对前台访问循环无效,不用再纠结这部分配置。按以下优先级排查即可:

1. 第一优先级:核对多站点核心数据表字段值

主站、第一个子站正常,仅后续新增子站出问题,90%以上是新增站点写入数据库时路径字段值错误导致的,直接查库核对:

  • 检查wp_site表:domain字段值必须为multisite.domain.com,path字段值必须为/,不能带多余斜杠、多余路径
  • 检查wp_blogs表所有站点记录:
    • 主站(blog_id=1):domain=multisite.domain.com,path=/
    • site1(blog_id=2):domain=multisite.domain.com,path=/site1/
    • site2(blog_id=3):domain=multisite.domain.com,path=/site2/
    • site3(blog_id=4):domain=multisite.domain.com,path=/site3/

关键校验点:子站的path字段必须同时带开头、结尾的斜杠,漏写尾斜杠写成/site2、漏写头斜杠写成site2/都会触发WordPress的路径补全逻辑,反复301跳转形成死循环。如果之前做过站点迁移、修改过主站域名,WordPress很可能把旧路径缓存后写入新增站点记录,就会出现第一个手动修正过的子站正常、后续自动生成的子站全异常的现象。

  • 检查每个子站独立options表的配置:site2对应wp_3_options、site3对应wp_4_options,表中siteurl、home两个选项值必须为对应站点的根地址,比如site2对应https://multisite.domain.com/site2,不要带尾斜杠,不要多写路径。

2. 第二优先级:核对Apache配置

你贴的.htaccess规则是WordPress官方给出的子目录多站点标准规则,本身没有错误,问题大概率出在Apache虚拟主机配置上:

  • 确认站点根目录对应的Directory配置中开启了全量规则覆写:
<Directory /var/www/你的站点根目录实际路径>
    AllowOverride All
    Require all granted
</Directory>

如果AllowOverride配置为None或者仅开放部分权限,.htaccess里的重写规则不会生效,部分路径能访问只是刚好命中Apache的目录索引规则。

  • 确认已经开启rewrite模块,执行a2enmod rewrite后重启Apache服务即可。

3. 第三优先级:清理缓存与冲突项

  • 全量清空对象缓存:如果站点开启了Redis、Memcached等持久化缓存,必须清空所有缓存数据,WordPress多站点会把站点路径配置存在缓存里,改完数据库不清缓存不会生效。
  • 清理本地301缓存:浏览器会永久缓存301跳转记录,测试时不要用普通窗口,直接开无痕模式访问,或者用curl直接看服务端响应头判断跳转逻辑:
curl -I https://multisite.domain.com/site2

正常逻辑只会有1次301跳转到带尾斜杠的/site2/地址,随后返回200状态码,如果出现连续多次跳转到同一地址的情况,说明服务端配置仍有错误。

  • 排查物理路径冲突:确认站点根目录下没有和site2、site3同名的真实文件/文件夹。Apache重写规则优先匹配真实存在的路径,如果根目录下刚好有命名为site2的文件夹,请求不会转给WordPress处理,直接走Apache目录逻辑也会触发跳转异常。site1能正常访问,基本可以对应验证:根目录下不存在名为site1的真实目录。

内容的提问来源于stack exchange,提问作者user1235285

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:00:58