WordPress多站点配置htaccess重定向后主站跳转子站问题求解
问题原因
你新增的重写规则逻辑是所有请求只要域名不严格匹配www.example.com,就强制跳转至www.example.com,规则优先级高于WordPress多站点自带的路由逻辑,且没有对域名匹配逻辑做精准限制,导致主站路由匹配混乱,被错误导向到二级站点。
修复步骤
- 先清理浏览器301永久缓存,也可以直接开无痕模式测试调整后的配置,避免本地缓存干扰测试结果。
- 调整.htaccess重写规则,把泛匹配逻辑改成精准匹配主站的非www域名,同时放行所有二级站点的域名,以下是示例代码(将
sub.example.com替换成你实际的二级站点域名,有多个二级站点就多新增一行对应的RewriteCond例外规则):
RewriteEngine On # 放行二级站点域名,避免跳转规则影响二级站 RewriteCond %{HTTP_HOST} !^sub\.example\.com$ [NC] # 仅匹配主站的非www域名触发跳转 RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
- 调整规则的放置位置,把上述自定义跳转规则放在WordPress自动生成的多站点重写规则块之前,不要插入到WordPress自带的规则块中间,防止后续WordPress更新配置时覆盖你的自定义规则。
- 后台校验站点域名配置:进入主站「设置-常规」页面,确认「WordPress地址(URL)」和「站点地址(URL)」都填写为带www的主站地址;再进入多站点管理的「站点-所有站点」栏目,分别核对主站和所有二级站点的绑定域名,确保没有配置错误。
如果你的多站点采用的是子目录模式而非子域名模式,不需要加二级域名例外规则,只保留精准匹配主站非www域名的跳转条件即可。
内容的提问来源于stack exchange,提问作者jessmca
相关产品推荐
相关产品推荐

