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。请为每个子站依次完成以下设置:

  1. 在域名的 DNS 服务商处,把子站域名的 A/AAAA 记录指向 WP Panel 服务器。
  2. 进入网站详情的域名设置,把子站域名逐个加入“别名”,例如 site-a.example.com、site-b.example.com。
  3. 如果网站启用了 HTTPS,重新签发包含这些子站域名的证书。
  4. 确认 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。