使用 WordPress MU 多站点来管理所有的站点确实很方便,可以省去很多重复的工作,节省资源。本站使用 MU 多站点已经很久,已经爱不释手,也帮很多客户安装了,反馈都很好。

使用了 WooCommerce 商城插件,安全支付时插件会要求使用 https://才能访问,百度、谷歌等网站也使用 https://访问,对使用 https://的链接也是优先收录,所以决定申请了 SSL 证书,将网络中所有的站点都使用 https://访问。本站多站点是使用的子域名,https://访问对于子域名形式的网站是不能访问,沃通的免费 SSL 只能申请 5 个域名,也不支持通配符,子域名需要重新申请 SSL,为了使网站中所有的链接都换成 https 访问,把多站点从子域名转换成子目录形式问题都解决。首页,打开 wp-config.php 文件,找到如下代码

  1. 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 多站点子目录形式的伪静态就可以正常使用。