互联网技术 · 2023年11月24日 0

WordPress多站点教程与伪静态规则

WordPress多站点功能我之前听说过很多次,最近在研究我的主题DEMO站点时使用了这个功能,因此我想在这里记录并分享一下搭建WordPress多站点的具体步骤与方法。

WordPress多站点概述

通常情况下,搭建一个WordPress站点的常规步骤包括:添加虚拟主机、域名绑定、上传安装包、创建数据库并安装WordPress。

而使用WordPress多站点(子目录模式),只需进行两步:开启多站点功能和添加新站点。

如果使用子域名模式,则还需进行额外的域名绑定。这种方式比常规安装更为简便,适合需要创建多个站点的用户。

多站点共享主站的数据库、主题文件和插件文件,子站点可以直接使用主站的资源,省去了重复安装主题和插件的麻烦。

此外,多站点的用户数据是互通的,升级时只需在主站进行升级,其他子站点会自动更新。

开启WordPress多站点的步骤

首先,在需要开启多站点的WordPress站点的配置文件wp-config.php中添加以下代码:

define(WP_ALLOW_MULTISITE, true);

WordPress多站点教程与伪静态规则

将代码放在/* That’s all, stop editing! Happy blogging. */这一行的上一行。

然后刷新网站后台,你会看到一个配置网络的选项,如下图所示。

WordPress多站点教程与伪静态规则

可选择子域名或子目录,根据你的需求进行选择。

子域名意味着每个网站对应一个独立的域名,我尚未测试过子域名形式。如果需要绑定其他域名,可以参考相关教程。

子目录则是在当前域名后创建一个文件夹的形式,例如我的主题DEMO展示了一个子目录的主题。

安装完成后,复制下面的代码并添加到wp-config.php中,放在刚才添加的代码下一行。

WordPress多站点教程与伪静态规则

再次刷新WordPress后台,就能看到站点选项了。

WordPress多站点教程与伪静态规则

添加新站点时,填写相应的信息即可。如果启用了插件,需要先手动停用所有插件。

WordPress多站点教程与伪静态规则

WordPress多站点Nginx伪静态规则

添加完成后,访问新添加的子站点时可能会发现网页错位,这是因为还未添加伪静态规则。我们需要添加这些规则。

WordPress多站点教程与伪静态规则

当前我使用的WordPress多站点Nginx伪静态规则如下:

# wordpress固定链接设置   try_files $uri $uri/ /index.php?$args;    # 管理面板添加斜杠   rewrite /wp-admin$ $scheme://$host$uri/ permanent;    # 传递上传文件给 wp-includes/ms-files.php   rewrite /files/$ /index.php last;    # 重写多站点 .../wp-.* and .../*.php.   if (!-e $request_filename) {     rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;     rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*.php)$ $1 last;     rewrite ^/[_0-9a-zA-Z-]+(/.*.php)$ $1 last;   }

另外一个规则如下:

#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;

WordPress多站点教程与伪静态规则

WordPress多站点教程与伪静态规则

WordPress多站点教程与伪静态规则