使用 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 文件中,请根据自己的服务器地址与域名来确定此文件的位置。
- #ignored: 「-」 thing used or unknown variable in regex/rew
- 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 服务器,这样 WordPress MU 多站点子目录形式的伪静态就可以正常使用。