使用 WordPress MU 多站點來管理所有的站點確實很方便,可以省去很多重複的工作,節省資源。本站使用 MU 多站點已經很久,已經愛不釋手,也幫很多客戶安裝了,反饋都很好。

使用了 WooCommerce 商城外掛,安全支付時外掛會要求使用 https://才能訪問,百度、谷歌等網站也使用 https://訪問,對使用 https://的連結也是優先收錄,所以決定申請了 SSL 證書,將網路中所有的站點都使用 https://訪問。

本站多站點是使用的子域名,https://訪問對於子域名形式的網站是不能訪問,沃通的免費 SSL 只能申請 5 個域名,也不支援萬用字元,子域名需要重新申請 SSL,為了使網站中所有的連結都換成 https 訪問,把多站點從子域名轉換成子目錄形式問題都解決。

首頁,開啟 wp-config.php 檔案,找到如下程式碼

define('SUBDOMAIN_INSTALL', true);

將 “true” 改成 “false”,重新整理網路後臺中的 “配置網路”,其中的兩段程式碼將會發生改變,程式碼已經轉換成了子目錄形式,我們只需把第二段程式碼重新覆蓋.htaccess 檔案的規則就可以,重新登入網路後臺,WordPress MU 多站點從子域名轉子目錄就成功了。

如果多站點中的網站都是繫結了域名,就不用做任何的修改,如果使用的是子域名,就需要將子域名全部換成子目錄的連結了。

對於 Apache 伺服器,到這一步已經可以正常使用 WordPress 多站點,而 Nginx 伺服器還需要新增如下程式碼
到/usr/local/nginx/conf/vhost/yourdomain.com.conf 檔案中,請根據自己的伺服器地址與域名來確定此檔案的位置。

  1. #ignored: “-” thing used or unknown variable in regex/rew
  2. rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ 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;

儲存好重啟 Nginx 伺服器,這樣 WordPress MU 多站點子目錄形式的偽靜態就可以正常使用。