WordPress多站点子域名搭建:从零开始完整教程
什么场景适合用 WordPress 多站点子域名模式
如果你需要为一个主站创建多个子站点(如 blog.example.com、shop.example.com),且希望共用同一套 WordPress 核心程序、插件和主题,但又想保持数据独立,那么多站点子域名模式是最灵活的选择。
它不需要为每个子站点单独安装 WordPress,管理后台可以在一个面板里统一控制所有站点。
搭建前的必要条件
- 服务器环境:支持 PHP 7.4+ 和 MySQL 5.7+(推荐使用 Nginx 或 Apache)。
- 已安装的 WordPress 单站点:先正常安装一个主站点,比如 example.com。
- 域名泛解析:在域名 DNS 管理面板添加一条 A/AAAA 记录,主机记录填
*,指向服务器 IP。这样所有*.example.com的子域名都会解析到同一台服务器。 - 拥有服务器管理员权限:能够编辑 Nginx 配置文件或 Apache 的 .htaccess。
如果使用宝塔面板,可以直接在面板里开启伪静态、修改配置文件和添加域名。
核心操作步骤
1. 启用多站点网络功能
用 FTP 工具或服务器文件管理器打开 wp-config.php(位于 WordPress 安装根目录),在 /* That's all, stop editing! 这行之前添加以下代码:
Happy blogging. */
define('WP_ALLOW_MULTISITE', true);
保存文件后重新登录 WordPress 后台。
此时左侧菜单「工具」下会出现「网络设置」入口。
2. 配置重写规则(Nginx 与 Apache 二选一)
- 如果使用 Apache:WordPress 后台会提示你编辑 .htaccess 文件。按照提示替换或追加规则即可。但注意先把原有规则备份。
- 如果使用 Nginx:WordPress 不会自动生成 Nginx 规则,需要手动添加到站点配置文件中。在 server 块内的
location / { try_files ... }之前添加:
# 必须放在其他 location 之前
rewrite ^/(wp-.*.php)$ /$1 last;
rewrite ^/(wp-(content|admin|includes).*) /$1 last;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
保存后重载 Nginx:nginx -s reload(或 systemctl reload nginx)。
3. 在后台设置子域名模式
- 进入「工具」→「网络设置」。
- 选择站点网络类型为「子域名」。
- 填写网络标题(可留空默认)和管理员邮箱。
- 点击「安装」。系统会显示一段新的 wp-config.php 和 .htaccess / Nginx 规则,复制粘贴并替换原有内容(注意保留第二步已经添加的规则,不要重复)。
4. 创建第一个子站点
安装完成后,访问后台顶部“我的站点”->“管理网络”。
在“站点”菜单中点击“添加新站点”。
输入站点地址(如 shop),系统会自动补全为 shop.example.com。
填写站点标题和管理员邮箱,点击“添加站点”。
常见问题与避坑
Q1:访问子域名站点提示 404 或无法加载
原因:重写规则未生效或 DNS 泛解析未生效。
解决:检查 Nginx 配置文件是否包含第二步的规则;检查 DNS 解析是否已生效(可使用 dig *.example.com);如果使用宝塔,确保站点设置中已开启“强制HTTPS”时,子域名也要支持 HTTPS(需通配符证书)。
Q2:创建新站点后,后台无法登录子站点
原因:Cookie 域设置问题。
在 wp-config.php 中添加:
define('COOKIE_DOMAIN', false);
这样 WordPress 会自动适配子域名 cookie。
Q3:子域名无法使用固定链接
原因:.htaccess 或 Nginx 规则未正确覆盖。
确认子域名也继承了主站的重写规则,通常只需要主站配置正确即可。
如果使用 Apache,确保 .htaccess 文件权限为 644 且 AllowOverride 已开启。
Q4:SSL 证书问题
场景:主站有 HTTPS,子域名访问时提示不安全。
解决:建议购买通配符 SSL 证书(*.example.com),或在 CDN 层面统一配置。
验证多站点是否生效
- 在浏览器直接访问新创建的子域名(如
shop.example.com)。 - 如果能正常加载站点页面,并且后台登录后能看到该站点的仪表盘,说明搭建成功。
- 回到网络管理后台,在“站点”列表中能看到新添加的子站点状态为“正常”。
如果你在使用过程中遇到其他异常,
建议先回到 wp-config.php 检查常量定义是否正确,
重写规则是否被覆盖,
DNS 是否已经完全生效(TTL 时间一般为 10 分钟到 1 小时)。
WordPress 多站点子域名模式非常适合需要独立品牌或独立内容但共享后台的场景,按照上述步骤一步步来基本不会出错。
如果还需要深入了解某个环节,欢迎翻看专题文章或留言交流。