使用 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 多站點子目錄形式的偽靜態就可以正常使用。