本教程以主域名 www.nicetheme.com 为例,带你从零开启 WordPress 多站点网络,并采用子目录模式(新站点地址形如 www.nicetheme.com/site1),全程不使用子域名。

适用场景:一个主站下管理多个独立站点,共用一套 WordPress 程序和数据库,适合个人站长、小型机构或需要统一维护的多站项目。


开始前的准备

多站点一旦开启,回退比较麻烦,务必先做好以下准备:

  1. 完整备份网站文件和数据库(可用主机面板备份或插件备份)。
  2. 暂时停用所有插件,避免与多站点网络产生兼容冲突,开启后再逐个启用。
  3. 确认网站已启用固定链接(后台 → 设置 → 固定链接,不要选“朴素”)。
  4. 准备好 FTP 或主机文件管理器,后续需要编辑 wp-config.php 和 .htaccess。
  5. 确认主域名 www.nicetheme.com 已正常解析并可访问。

第一步:开启多站点功能开关

WordPress 默认隐藏了多站点功能,需要先在配置文件中打开开关。

  1. 打开网站根目录下的 wp-config.php。
  2. 找到这一行:
   /* That's all, stop editing! Happy publishing. */
  1. 在这一行之前添加:
   define( 'WP_ALLOW_MULTISITE', true );
  1. 保存文件。

此时刷新后台,你会看到“工具”菜单下多出了“配置网络”选项,说明开关已生效。


第二步:运行安装向导,选择子目录模式

  1. 进入后台,点击“工具” → “配置网络”。
  2. 在“站点地址”中,选择“子目录”(Sub-directories)。
  • 这一选择决定了新站点地址是 www.nicetheme.com/站点名,而不是 站点名.nicetheme.com。
  • 注意:如果主站已运行超过一段时间,WordPress 可能提示子目录模式与现有文章链接冲突,此时可先调整固定链接结构再继续。
  1. 填写网络标题和管理员邮箱,点击“安装”。
  2. 向导会生成两段代码:一段用于 wp-config.php,一段用于 .htaccess。先不要关闭页面,按下一步操作。

第三步:完善 wp-config.php 配置

向导生成的第一段代码需要粘贴到 wp-config.php 中。最终,在 /* That's all, stop editing! */ 上方,应包含以下常量(与你整理的代码一致):

define( 'WP_ALLOW_MULTISITE', true );      // 多站点功能开关(第二步已加)
define( 'MULTISITE', true );                // 启用多站点网络
define( 'SUBDOMAIN_INSTALL', false );       // 关键:false = 子目录模式
define( 'DOMAIN_CURRENT_SITE', 'www.nicetheme.com' ); // 主站域名
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

关于 WP_ALLOW_REPAIR:你整理的代码中还有一行 define('WP_ALLOW_REPAIR', true);。它的作用是开启数据库修复页面(www.域名.com/wp-admin/maint/repair.php),与多站点本身无关。如果只是建多站点,可以不添加;若保留,它不会影响网络运行,但修复完成后建议移除,以免留下安全隐患。

关于 SUBDOMAIN_INSTALL:这是决定地址模式的核心参数。false 即子目录模式,true 为子域名模式。建网后不要随意翻转此值,否则现有子站点地址会解析出错。


第四步:更新 .htaccess 伪静态规则

这一步最容易被遗漏。子目录模式需要特定的重写规则来处理 www.nicetheme.com/site1 这类请求,否则新站点页面会出现 404。

  1. 打开网站根目录的 .htaccess 文件(Apache 服务器)。
  2. 删除原有的 WordPress 规则块(以 # BEGIN WordPress 开头、# END WordPress 结尾)。
  3. 粘贴向导生成的 .htaccess 代码,或使用标准的子目录多站点规则:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# 上传文件
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# 添加尾部斜杠
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

# 子站点请求
RewriteRule . index.php [L]

如果你用的是 Nginx 而非 Apache,则无需 .htaccess,而需在 Nginx 配置中加入对应的 location 重写规则,具体可参考 WordPress 官方 Nginx 多站点配置示例。

操作路径

  1. 登录宝塔面板,进入“网站”列表。
  2. 找到你的主站 www.titcm.com,点击右侧“设置”。
  3. 在弹出窗口左侧菜单中,点击“伪静态”。
  4. 将编辑框里原有的规则全部清空,然后粘贴多站点子目录模式的专用规则。
  5. 点击“保存”。宝塔通常会自动重载 Nginx,如果没有生效,可以手动在软件商店里重载一次 Nginx 配置。

需要粘贴的规则

由于你的 WordPress 安装在根目录(PATH_CURRENT_SITE 为 /),应使用以下规则:

# 多站点子目录模式规则
if (!-e $request_filename) {
    rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
    rewrite ^.+?(/wp-.*) $1 last;
    rewrite ^.+?(/.*\.php)$ $1 last;
    rewrite ^ /index.php last;
}

如果上述规则在你的环境下出现异常,也可以尝试宝塔面板中内置的“WP2”规则,它通常包含多站点所需的额外重写条件。


第五步:重新登录并验证

保存 wp-config.php 和 .htaccess 后,系统通常会强制你重新登录。

  1. 重新登录后台。
  2. 查看顶部工具栏,如果出现“我的站点” → “管理网络”入口,说明多站点网络已成功启用。
  3. 依次启用之前停用的插件,观察是否有报错。
  4. 进入“管理网络” → “站点” → “添加新站点”,创建一个测试站点(如 www.nicetheme.com/test),访问其前台和后台,确认地址与页面正常。

常见问题与注意事项

  • 新站点后台进不去/前台 404:八成是 .htaccess 或 Nginx 重写规则没更新,检查第五步。
  • 提示“Cookie 检查失败”:清理浏览器缓存,或检查 DOMAIN_CURRENT_SITE 是否与当前访问域名完全一致(注意 www 前缀)。
  • 子目录模式与旧文章冲突:若主站已有形如 www.nicetheme.com/site1 的文章链接,WordPress 会提示冲突。可先修改固定链接结构,或在建站前规划好站点名,避免与现有路径重名。
  • 之后想用独立域名:子目录模式建网后,仍可为某个子站点绑定完全独立的顶级域名(WordPress 4.5+ 原生支持域名映射),无需改用子域名模式。
  • 不要随意修改 SUBDOMAIN_INSTALL:建网后翻转此参数会导致所有子站点地址失效,需清理网络表并重新配置,风险较高。

小结

整个流程可归纳为五步:备份并停插件 → 加 WP_ALLOW_MULTISITE 开关 → 向导选子目录并生成配置 → 完善 wp-config.php 与 .htaccess → 重新登录验证。核心参数是 SUBDOMAIN_INSTALL = false,它保证新站点走 www.nicetheme.com/站点名 的子目录形式,全程不需要配置子域名或泛解析证书,部署门槛最低。