You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让WordPress多站点创建主域名子站而非嵌套子域名?

解决WordPress多站点创建主域直接子域名站点的问题

第一步:恢复可正常访问的基础配置

先回滚之前修改导致重定向的配置,确保能重新进入多站点管理后台:

  • 恢复wp-config.php中多站点相关的原始定义(有备份用备份,无备份参考初始多站点配置模板)
  • 恢复.htaccess为WordPress多站点默认的子域名规则(Apache)或对应Nginx配置

第二步:DNS与服务器虚拟主机配置

  1. DNS设置:在域名解析后台添加通配符A记录*.domain.com指向服务器IP;也可以给每个要创建的子域名(如other.domain.com)单独添加A记录。
  2. 服务器虚拟主机配置:
    • Apache:确保sites.domain.com和*.domain.com的虚拟主机文档根目录指向WordPress多站点的安装目录,示例配置:
      <VirtualHost *:80>
          ServerName sites.domain.com
          ServerAlias *.domain.com
          DocumentRoot /var/www/html/sites-domain
          <Directory /var/www/html/sites-domain>
              AllowOverride All
              Require all granted
          </Directory>
      </VirtualHost>
      
    • Nginx:配置包含sites.domain.com和*.domain.com的server块,文档根目录指向WP安装目录,示例:
      server {
          listen 80;
          server_name sites.domain.com *.domain.com;
          root /var/www/html/sites-domain;
          index index.php;
      
          location / {
              try_files $uri $uri/ /index.php?$args;
          }
      
          location ~ \.php$ {
              fastcgi_pass unix:/run/php/php8.2-fpm.sock;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
          }
      }
      

第三步:修改WordPress核心配置

编辑wp-config.php,调整多站点相关定义:

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'domain.com'); // 替换为主域名,去掉www和sites前缀
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
// 避免跨域Cookie问题导致的重定向
define('COOKIE_DOMAIN', '');

第四步:更新重写规则

  • Apache:替换.htaccess内容为以下多站点子域名规则:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    
  • Nginx:确保server块中已经包含正确的try_files规则(参考第二步的Nginx配置)

第五步:创建主域直接子域名站点

  1. 清除浏览器缓存和Cookie,重新登录多站点管理后台
  2. 进入「我的站点」→「网络管理」→「站点」→「添加新站点」
  3. 站点地址填写other.domain.com(直接使用主域的子域名,无需嵌套sites前缀),完成创建

常见问题排查

  • 若仍重定向到www.domaine.com:检查服务器是否有强制重定向规则(比如Apache的Redirect指令、Nginx的return 301规则),确保sites.domain.com和子域名未被强制跳转到主域
  • 子站点访问404:确认DNS解析生效,虚拟主机配置正确,重写规则已启用(Apache需开启mod_rewrite,Nginx需确保try_files规则正确)

内容的提问来源于stack exchange,提问作者Jim1120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:10:39