其實在很早以前,陌小雨就聽說了 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。
然后重新登陸你的站點,就可以看到配置網絡的選項了。
點擊新建站點,就可添加新網絡了。
提示:如果是子域名的話,需要給域名和寶塔中分別設置泛解析設置