前言
欢迎你来看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
应该可以正常工作了。
然后启用已在站点网络中启用的付费主题,然后你会发现单域名授权主题新站也可以使用它了。
参与讨论