WordPress Multisite 多域名、多站点、多用户安装配置详解

WordPress 开启多域名、多站点、多用户模式能够满足 WordPress 在各种应用场景下的需求,对于WordPress程序而言,这是一项简单的任务,你可以轻松使用它来搭建一个大型内容网站。

WordPress 开启多域名、多站点、多用户模式只需以下简单的几个步骤:

1、开启多站点模式

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

define('WP_ALLOW_MULTISITE', true);

刷新网站后台,访问 工具 > 配置网络,根据自己的需要选择 ”子域名“ 或者 “子目录” 模式,设置好网站信息,然后点击 “安装”,只有新安装的 WordPress,并且绑定了域名,这时候才可以选择“ 子域名” 模式。如果你选择是的 “子域名” ,安装后,请将下面的代码添加到网站根目录下的 wp-config.php 下:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '你的域名');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

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

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '你的域名');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

2、添加伪静态规则

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

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

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]

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

RewriteEngine On
RewriteBase /
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]

如果是 Nginx 环境,则在域名配置文件server区域最后一个}之前加上以下规则,子域名和子目录模式通用:

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 ,然后重新登录 WordPress 后台!

3、设置COOKIE

这步操作很重要,如果不设置的话,之后登录网站后台会提示“错误:Cookies被阻止或者您的浏览器不支持。要使用 WordPress ,您必须启用Cookies。”,解决方法是在网站根目录下的 wp-config.php 添加:

define( 'COOKIE_DOMAIN', '' );

4、多域名模式

在刚才添加好的子域名上点编辑,把里面的 “站点地址(URL)” 修改为指定的独立域名,然后保存。如果使用 Nginx 环境,则在域名配置文件的 server_name 部分加上要使用的其他独立域名,重启 nginx 即可。

如果要自动匹配多域名,可以将域名配置文件的 server_name 部分改为:

server_name  ~^(www.)?(.+)$;

这样即可实现 Nginx 多域名通配,任何用户只需设置好自己的域名,将解析指向该服务器即可,而无需管理员手动添加域名。

5、故障排除

如果安装主题或插件是出现:“安装失败:无法复制文件。”可尝试修改目录权限或者用户组。
修改目录权限,以 LNMP 环境为例:

chmod 777 /home/wwwroot/网站目录 -R

修改用户组:

chown -R www:www /home/wwwroot/网站目录/

考虑到现在很多人建站都用的宝塔面板,所以还可以参考下面的文章通过一键脚本修复 WordPress 目录和文件的权限。

WordPress Multisite 多域名、多站点、多用户安装配置详解 - 多站点
WordPress Multisite 多域名、多站点、多用户安装配置详解 - 多站点

全自动 WordPress 文件目录权限一键修复教程

本文引用:

https://bynss.com/wordpress/186.html

给TA买糖
共{{data.count}}人
人已赞赏
WordPress教程

教你如何修改 WordPress 登录页面的 Logo 图片以及点击 Logo 后跳转地址

2021-4-15 0:51:17

WordPress教程

在 WordPress WooCommerce 产品简短描述中增加表单调用

2021-6-22 14:33:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索