WordPress Multisite 的 Nginx 配置
在 WP Panel 中为子目录或子域名 WordPress Multisite 添加和验证 Nginx 配置。
在 WP Panel 中把现有 WordPress 站点手动转换为 Multisite 后,还需要让 Nginx 正确处理子站点请求。本页说明如何通过网站详情中的“自定义 Nginx 配置”添加规则。
适用范围:你已经在 WordPress 中完成 Multisite 转换,并且主站可以正常访问。WP Panel 当前不会代替你创建或管理 Multisite 网络;部分 WordPress 托管更新、异常监控和其他单站工作流也不支持 Multisite。
先确认使用哪种 Multisite 模式
- 子目录模式:子站点地址类似
example.com/site-a/。需要添加 Nginx rewrite 规则。 - 子域名模式:子站点地址类似
site-a.example.com。通常不需要额外 rewrite,但每个子站域名都需要正确的 DNS、网站别名和 SSL 证书。
子目录模式:添加 rewrite 规则
进入 网站管理 → 选择网站 → 网站详情 → SSL 与 Nginx 自定义配置,展开“Nginx 自定义配置”。
把下面的内容粘贴到“Location 级配置(.conf)”中:
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}
点击“保存并应用”。面板会检查整份 Nginx 配置并重新加载服务;如果语法检查或重新加载失败,会报告错误并尝试恢复保存前的片段。
不要另外添加 location /。WP Panel 已经在站点配置中生成默认的 location / 和 PHP 处理规则,重复定义会导致 Nginx 配置冲突。
子域名模式:配置域名、DNS 和 SSL
子域名模式通常不需要添加上面的 rewrite。请为每个子站依次完成以下设置:
- 在域名的 DNS 服务商处,把子站域名的 A/AAAA 记录指向 WP Panel 服务器。
- 进入网站详情的域名设置,把子站域名逐个加入“别名”,例如
site-a.example.com、site-b.example.com。 - 如果网站启用了 HTTPS,重新签发包含这些子站域名的证书。
- 确认 WordPress 网络管理中的子站地址与实际域名完全一致。
WP Panel 当前不接受 *.example.com 作为网站别名,因此不能只靠面板的别名和自动 SSL,建立可无限新增子域名的通配符 Multisite。你可以逐个添加实际使用的子站域名。
保存后如何检查
- 分别打开主站首页、子站首页和子站后台。
- 确认
/wp-admin/地址能正常跳转并登录。 - 打开子站文章、媒体文件和固定链接,确认没有 404 或循环跳转。
- 子域名模式还要分别检查 HTTP、HTTPS 和证书域名是否匹配。
常见问题
规则应该放在哪个输入框?
子目录模式的 rewrite 放在“Location 级配置(.conf)”。虽然名称中带有“Location”,这段内容实际插入当前网站的 server 块、默认 location 之前。
可以直接修改 Nginx 站点配置文件吗?
不建议。WP Panel 管理并可能重新生成站点配置。请使用网站详情中的自定义配置入口,避免后续保存设置、修复或升级时丢失手工修改。
Nginx 正常后,面板所有 WordPress 功能都能用于 Multisite 吗?
不能。Nginx 规则只解决请求路由。WP Panel 可以识别库存中的 Multisite 状态,但当前不提供完整的 Multisite 托管工作流,部分核心、插件、主题更新和监控功能会拒绝或不支持 Multisite。