前言

欢迎你来看Mikuの鬆新一期没什么实用性的建站杂谈!

最近博主Mikuの鬆在修缮博客时候,想起了WordPress 有一个名为多站点的隐藏功能,于是便尝试启用它这个隐藏的功能来研究玩耍,然后发现了好玩的事情。

介绍

WordPress Multisite 是一个隐藏于WordPress之中的隐藏功能,你可以将其添加到现有或者新创建的WordPress网站中。它允许你在WordPress安装上创建一个站点网络,这意味着我们可以在该站点网络中运行任意数量的站点,所有站点都在一个WordPress实例上。

你不要觉得这个东西没什么人用或者离我们很遥远,WordPress官方提供的托管就是运用了WordPress Multisite的一个典型例子。它提供给你user.wordpress.com的域名就是通过WordPress Multisite的其中一种模式(子域名)实现的。

而很多单域名授权付费主题一般是单独绑定你的域名进行授权的,我们今天钻它们空子的方式是通过WordPress Multisite的另一种模式(子目录)实现的。

启用

WordPress Multisite的子目录模式无法在已经部署完毕并且日常运营的博客上启动,这会破坏站点原有的秩序,所以我们需要一个新的,刚复制完还没开始安装或者刚安装完的WordPress 环境,然后在它的安装目录下找到wp-config.php文件,找到这一行,添加代码:

define('WP_ALLOW_MULTISITE', true);
//插入点
/* That’s all, stop editing! Happy blogging. */

保存并退出,然后打开你的WordPress 管理仪表盘,在你可以看到新出现在侧边栏里的工具 > 网络设置(配置网络)

然后我们选择子目录,并且在相关字段中输入你的站点网络标题和管理员的电子邮件地址,然后单击安装按钮,按照它说的在wp-config.php添加代码。

然后我们再次刷新站点以后就会有了站点网络选项,我们在里面选择添加新站点,然后新建完以后,理论上你就可以通过 example.com/2 访问你的第二个网站了,但是你打开网站通常发现页面无法正常运行,不是这个文件地址链接不对,就是那个页面出现了404报错。

这时候需要在你的站点Nginx文件中做如下更改(插入到Server模块内,注意替换其中目录为WordPress 安装目录):

        location ^~ /blogs.dir {
            internal;
            alias /home/wwwroot/abc.com/wp-content/blogs.dir ;
            access_log off; log_not_found off;      expires max;
        }
        if (!-e $request_filename) {
            rewrite /wp-admin$ $scheme://$host$uri/ permanent;
            rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
            rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
        }

接下来重启Nginx服务器,载入这段新配置以后,你应该就可以看到example.com/2应该可以正常工作了。

然后启用已在站点网络中启用的付费主题,然后你会发现单域名授权主题新站也可以使用它了。