WordPress 的 Multisite 多站点模式,是指使用同一个 WordPress 程序搭建的多个独立 WordPress 站点。Wordpress 的多站点模式可以分为以下两种模式,以本站主域名 www.niuqi360.com 来举例:
1、子域名模式:blog.niuqi360.com;
2、子目录模式:www.niuqi360.com/blog/;
无论采用何种模式,都可以通过同一个管理后台对不同站点进行统一的管理。每个站点都会拥有自己独立的管理仪表盘,可以在各站点的仪表盘之间进行切换和管理。各站点的用户、文章、媒体等内容都互不影响。
开启多站点:
要在现有的Wordpress网站开启多站点模式,我们可以按照如下步骤进行操作:
- 第一步、编辑 WordPress 网站根目录的 wp-config.php 配置文件,在文件中添加以下代码:define(‘WP_ALLOW_MULTISITE’, true);
- 第二步、进入“Wordpress 仪表盘——插件——已安装的插件”中停用所有插件;
- 第三步、添加第一步的代码后,便可以进入进入仪表盘,点击左侧“工具——配置网络”进入设置界面;
- 第四步、在”创建 WordPress 站点网络”界面中根据需要选择“子域名”或“子目录”(子域名需要做域名泛解析,子目录直接跟着本教程操作即可),然后设置“站点标题”和“管理员电子邮件”,默认是主站的标题和邮箱:
- 第五步、点击“安装”按钮后进入“正在启用网络”界面,在该界面 WordPress 会提供两部分代码,根据说明进行操作即可。
创建WordPress站点网络
警告: 检测到已存在的 WordPress 站点网络。
请完成配置步骤。如需创建新的站点网络,您需要清空或删除站点网络的数据库表。
正在启用站点网络
完成以下步骤来启用创建站点网络的功能。
注意: 我们建议您备份现有的 wp-config.php
和 .htaccess
文件。
1、配置 wp-config.php
文件
将以下内容加入位于网站根目录下
的 wp-config.php
文件,加在/* That’s all, stop editing! Happy publishing. */
这行上方:
如果是子目录模式:
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'www.niuqi360.com/blog' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
如果是子域名模式:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'blog.niuqi360.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
2、配置Apache 或者 Nginx
如果是Apache:
将这些加入位于网站根目录下的 .htaccess
文件,替换其他WordPress规则:
如果是子目录模式:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/abc/
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
如果是子域名模式:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
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:
在 Nginx 的配置文件中,加入:
#ignored: “-” thing used or unknown variable in regex/rew
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
set $rule_2 1;
}
if (-d $request_filename){
set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;
如果是子目录模式,就不用做更多设置。如果是子域名模式,还需要在 Nginx 的配置文件中或者是虚拟主机的配置文件中的 Server_Name 中添加以下内容:
server_name yourdomain.com *.yourdomain.com;
这样我们就完成了对 WordPress Multisite多站点网络的设置。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/setup-wordpress-multisite/