top

WordPress多站点模式怎么设? 快来看详细教程!

最近,众多网友热衷于尝试WordPress的多站点操作。这种模式并非仅仅在服务器上安装多个WP程序来解析不同域名,而是通过调整一个WP程序,达到多站点、多域名共存,并且数据库共享的效果。这其中的配置工作相当复杂。

开启多站点模式

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

在WP-CONFIG.PHP文件中加入代码,是启动多站点的关键步骤。这是整个配置过程的起点。许多人可能不清楚代码该添加在哪里以及如何添加。实际上,只需找到正确的路径找到该文件,操作就完成了。若这一步出错,后续的设置都会受影响。WP-CONFIG.PHP是WordPress程序中非常关键的配置文件,因此在添加代码时要格外小心。代码添加完毕后,刷新WordPress后台,会发现后台界面有所变化,多出了一个“工具”-“网络设置”选项。这一变化表明之前的操作是成功的,接下来就可以进行下一步设置了。

这里需要注意对代码的细致操作。比如,2023年10月,就有用户因为代码中出现了错误,使得WP后台无法正常运行。这全是因为没有对添加的内容进行仔细核对的结果。

WordPress多站点模式怎么设? 快来看详细教程!插图

子域名与二级目录选择

在设置网络时,首先需要决定是使用子域名还是二级目录。这个决定将直接关系到网站构建的具体方法。选了子域名,网站就会以blog.example.com这样的子域形式出现;而选择了二级目录,网站地址就会变成example.com/blog这样的结构。不同的选择对应着不同的应用场景。

WordPress多站点模式怎么设? 快来看详细教程!插图1

用户在搭建个人博客群时,更偏爱使用子域名,认为这有助于区分不同类别的文章。至于企业构建产品子站点,采用二级目录即可巧妙融入主站架构。选择何种方式需依据个人需求,且需深思熟虑,全面考量长远规划等因素。

继续配置代码添加

WordPress多站点模式怎么设? 快来看详细教程!插图2

选定了子域名或二级目录后,还需在配置文件中添加特定指令。这一步骤常常是出错的高发区。不少初学者对代码感到棘手,很容易出现误写或遗漏。代码中的符号和字母必须确保精确无误。

我曾在某个网络技术团队中,看到一位成员分享了他配置多个站点的心得。他讲述了一个因代码中小写的字母误写成大写而耗费数小时排查的教训。因此,大家在执行这一步骤时务必格外小心。这个环节是在前一步的基础上对多站点配置的深化,若处理不当,可能会导致站点出现诸多问题,例如数据同步失败。

站点伪静态规则配置

# 根据自己的实际修改下面的域名
log_format yourdomain.com '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
server
{
listen 80;
# 根据自己的实际修改下面的域名
server_name yourdomain.com *.yourdomain.com;
index index.html index.htm index.php default.html default.htm default.php;
# 注意修改下面的网站目录
root /mnt/wwwroot/yourdomain.com;
#include wordpress.conf;
#以下是 lnmp 1.0 的 wordpress.conf 规则,也就是上一行 include wordpress.conf 里面的
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
# wordpress.conf 规则 结束
location ~ .*.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/huchangmeng.com.log huchangmeng.com;
#ignored: “-” thing used or unknown variable in regex/rew
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /wp-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).*) / last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ / last;
rewrite /. /index.php last;
}

WordPress的多站点模式下,不论是Nginx还是Apache环境,都少不了伪静态规则的设置。在Nginx环境中,只需按照提供的规则进行修改即可,但这些规则并不简单。据统计,2023年8月有30%的用户在调整Nginx的伪静态规则时遇到了问题。

若您在Apache环境下操作,需将提供的特定代码替换至网站根目录的.htaccess文件中原有代码。值得注意的是,子域名和子目录模式下的替换规则各不相同。只有熟练掌握不同环境下的伪静态配置,才能有效提升网站在搜索引擎排名和用户访问体验方面的表现。

多站点域名管理

在多站点操作模式中,域名管理功能相当强大。它允许使用主域名的二级域名,亦或选用其他域名。不过,这要求进行域名映射解析。举例来说,成都一家小型的网络公司,为了给海外客户搭建多站点,由于对域名映射解析的步骤不太熟悉,整个过程耗费了他们大量时间。

进行域名解析操作时,须在注册商处正确设置记录,保证域名精确无误地指向目标站点。同时,WordPress平台上的配置也要相应调整,如此才能确保多个站点能借助不同域名顺畅运行。

数据管理与同步

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*.php)$ $1 [L]
RewriteRule . index.php [L]

数据管理在多个站点间变得极为便捷,主站点就能轻松实现多站点的数据同步和管控。以一个大型新闻网站为例,它拥有众多分站,热门新闻可迅速传播至各分站,有效降低了人力和时间投入。然而,数据备份同样重要,一旦特殊数据丢失,恢复难度较大。我曾有一位朋友,他管理的动漫主题多站点就因一次意外未及时备份,导致部分原创资源更新记录丢失,之后他不得不投入大量精力进行恢复。

你对WordPress的多站点功能有兴趣吗?不妨在评论区留下你的想法。同时,也欢迎你点赞并分享这篇文章。

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

THE END
icon
0
icon
分享
icon
海报
发表评论
评论列表

赶快来坐沙发