宝塔面板启用WordPress多站点子域名、子目录

Author: 陌小雨Date: 2016-03-23View: 300

其实在很早以前,陌小雨就听说了wordpress的多站点功能,不过因为不清楚,所以懒得折腾,这不这几天闲着蛋疼,好好研究了下这玩意,用起来的感觉还是相当不错的,总结起来就是如果你准备开始用wordpress建站,最好从一开始就开启多站点模式。

从这几天的使用看来,陌小雨认为开始WordPress多站点模式有以下几个好处:

1、只需要安装一次WordPress和插件以及主题等等等等。

2、一个后台方便管理旗下所有的网站和二级域名网站

3、更换主题或者网站改版后可以很方便的开启一个旧版入口

4、子站之间的网站数据可以很方便的复制

陌小雨为什么强调从一开始,因为从头开始,你有选择性,可以开启子域名或者子目录两种模式,如果是在现有网站的基础上开启WordPress多站点的话,貌似只能用子域名方式。

那么如何开启WordPress多站点呢?网上有很多教程,陌小雨挑一个比较易懂的教程给大家

一、打开wordpress根目录,找到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);

按照提示编辑即可,建议在编辑之前先备份。

然后添加伪静态规则:
如果你的服务器使用的是Aache环境,使用下面的代码替换网站根目录下的 .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。

然后重新登陆你的站点,就可以看到配置网络的选项了。

点击新建站点,就可添加新网络了。

提示:如果是子域名的话,需要给域名和宝塔中分别设置泛解析设置