本教程以主域名 www.nicetheme.com 为例,带你从零开启 WordPress 多站点网络,并采用子目录模式(新站点地址形如 www.),全程不使用子域名。nicetheme.com/site1
适用场景:一个主站下管理多个独立站点,共用一套 WordPress 程序和数据库,适合个人站长、小型机构或需要统一维护的多站项目。
开始前的准备
多站点一旦开启,回退比较麻烦,务必先做好以下准备:
- 完整备份网站文件和数据库(可用主机面板备份或插件备份)。
- 暂时停用所有插件,避免与多站点网络产生兼容冲突,开启后再逐个启用。
- 确认网站已启用固定链接(后台 → 设置 → 固定链接,不要选“朴素”)。
- 准备好 FTP 或主机文件管理器,后续需要编辑
wp-config.php和.htaccess。 - 确认主域名
www.已正常解析并可访问。nicetheme.com
第一步:开启多站点功能开关
WordPress 默认隐藏了多站点功能,需要先在配置文件中打开开关。
- 打开网站根目录下的
wp-config.php。 - 找到这一行:
/* That's all, stop editing! Happy publishing. */
- 在这一行之前添加:
define( 'WP_ALLOW_MULTISITE', true );- 保存文件。
此时刷新后台,你会看到“工具”菜单下多出了“配置网络”选项,说明开关已生效。
第二步:运行安装向导,选择子目录模式
- 进入后台,点击“工具” → “配置网络”。
- 在“站点地址”中,选择“子目录”(Sub-directories)。
- 这一选择决定了新站点地址是
www.,而不是nicetheme.com/站点名站点名.。nicetheme.com - 注意:如果主站已运行超过一段时间,WordPress 可能提示子目录模式与现有文章链接冲突,此时可先调整固定链接结构再继续。
- 填写网络标题和管理员邮箱,点击“安装”。
- 向导会生成两段代码:一段用于
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. 这类请求,否则新站点页面会出现 404。nicetheme.com/site1
- 打开网站根目录的
.htaccess文件(Apache 服务器)。 - 删除原有的 WordPress 规则块(以
# BEGIN WordPress开头、# END WordPress结尾)。 - 粘贴向导生成的
.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 多站点配置示例。操作路径
- 登录宝塔面板,进入“网站”列表。
- 找到你的主站
www.titcm.com,点击右侧“设置”。- 在弹出窗口左侧菜单中,点击“伪静态”。
- 将编辑框里原有的规则全部清空,然后粘贴多站点子目录模式的专用规则。
- 点击“保存”。宝塔通常会自动重载 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; }
第五步:重新登录并验证
保存 wp-config.php 和 .htaccess 后,系统通常会强制你重新登录。
- 重新登录后台。
- 查看顶部工具栏,如果出现“我的站点” → “管理网络”入口,说明多站点网络已成功启用。
- 依次启用之前停用的插件,观察是否有报错。
- 进入“管理网络” → “站点” → “添加新站点”,创建一个测试站点(如
www.),访问其前台和后台,确认地址与页面正常。nicetheme.com/test
常见问题与注意事项
- 新站点后台进不去/前台 404:八成是
.htaccess或 Nginx 重写规则没更新,检查第五步。 - 提示“Cookie 检查失败”:清理浏览器缓存,或检查
DOMAIN_CURRENT_SITE是否与当前访问域名完全一致(注意www前缀)。 - 子目录模式与旧文章冲突:若主站已有形如
www.的文章链接,WordPress 会提示冲突。可先修改固定链接结构,或在建站前规划好站点名,避免与现有路径重名。nicetheme.com/site1 - 之后想用独立域名:子目录模式建网后,仍可为某个子站点绑定完全独立的顶级域名(WordPress 4.5+ 原生支持域名映射),无需改用子域名模式。
- 不要随意修改
SUBDOMAIN_INSTALL:建网后翻转此参数会导致所有子站点地址失效,需清理网络表并重新配置,风险较高。
小结
整个流程可归纳为五步:备份并停插件 → 加 WP_ALLOW_MULTISITE 开关 → 向导选子目录并生成配置 → 完善 wp-config.php 与 .htaccess → 重新登录验证。核心参数是 SUBDOMAIN_INSTALL = false,它保证新站点走 www. 的子目录形式,全程不需要配置子域名或泛解析证书,部署门槛最低。nicetheme.com/站点名