在网站根目录下的 wp-config.php 添加:

  1. define(‘WP_ALLOW_MULTISITE’, true);
define('WP_ALLOW_MULTISITE', true);

 

 

只有新安装的WordPress,并且绑定了域名,这时候才可以选择“子域名”模式。

如果你选择是的“子域名”,安装后,请将下面的代码添加到网站根目录下的 wp-config.php 下:

  1. define(‘MULTISITE’, true);
  2. define(‘SUBDOMAIN_INSTALL’, true);
  3. define(‘DOMAIN_CURRENT_SITE’, ‘yourdomain.com’);
  4. define(‘PATH_CURRENT_SITE’, ‘/’);
  5. define(‘SITE_ID_CURRENT_SITE’, 1);
  6. define(‘BLOG_ID_CURRENT_SITE’, 1);

如果选择的是“子目录”,则添加:

  1. define(‘MULTISITE’, true);
  2. define(‘SUBDOMAIN_INSTALL’, false);
  3. define(‘DOMAIN_CURRENT_SITE’, ‘yourdomain.com’);
  4. define(‘PATH_CURRENT_SITE’, ‘/’);
  5. define(‘SITE_ID_CURRENT_SITE’, 1);
  6. define(‘BLOG_ID_CURRENT_SITE’, 1);

添加伪静态规则

Apache 规则

如果你的服务器使用的是Aache环境,使用下面的代码替换网站根目录下的 .htaccess 里面的所有代码

子域名模式下的规则代码:

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^index\.php$ [L]
  4.  
  5. # add a trailing slash to /wp-admin
  6. RewriteRule ^wpadmin$ wpadmin/ [R=301,L]
  7.  
  8. RewriteCond %{REQUEST_FILENAME} f [OR]
  9. RewriteCond %{REQUEST_FILENAME} d
  10. RewriteRule ^ [L]
  11. RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
  12. RewriteRule ^(.*\.php)$ $1 [L]
  13. RewriteRule . index.php [L]

子目录模式下的规则代码:

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^index\.php$ [L]
  4.  
  5. # add a trailing slash to /wp-admin
  6. RewriteRule ^([_09azAZ-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  7.  
  8. RewriteCond %{REQUEST_FILENAME} f [OR]
  9. RewriteCond %{REQUEST_FILENAME} d
  10. RewriteRule ^ [L]
  11. RewriteRule ^([_09azAZ-]+/)?(wp-(content|admin|includes).*) $2 [L]
  12. RewriteRule ^([_09azAZ-]+/)?(.*\.php)$ $2 [L]
  13. RewriteRule . index.php [L]

Nginx 规则

测试的是 CentOS 系统,服务器使用的是 阿里云和宝塔面板配置的。

假设你的网站为 yourdomain.com,那么你可以编辑这个配置文件:

  1. vi /usr/local/nginx/conf/vhost/yourdomain.com.conf

最后一个 } 的前面添加下面的代码:

  1. #ignored: “-” thing used or unknown variable in regex/rew
  2. rewrite ^/([_0-9a-zA-Z-]+/)?wpadmin$ /$1wpadmin/ permanent;
  3. if (-f $request_filename){
  4. set $rule_2 1;
  5. }
  6. if (-d $request_filename){
  7. set $rule_2 1;
  8. }
  9. if ($rule_2 = “1”){
  10. #ignored: “-” thing used or unknown variable in regex/rew
  11. }
  12. rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
  13. rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
  14. rewrite /. /index.php last;

以上的规则对于 子域名 和 子目录 模式都正常使用,但是,如果你选择的是 子域名 模式,还需要找到:

  1. server_name yourdomain.com;

添加一个泛域名 *.yourdomain.com,如下:

  1. server_name yourdomain.com *.yourdomain.com;

保存文件,然后重启服务器:

  1. /root/lnmp restart

然后在你的域名管理那里添加一条泛域名 *.yourdomain.com 解析到主机IP(或者分别解析你即将要使用的子域名到主机IP),这样一来,创建子域名站点时,就可以正常访问了。

附:以下是 Nginx 下最完整的多站点配置代码,实际使用时,请根据自己的实际修改域名及网站目录,同时建议删除含有中文的行:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。