1. David Wu首页
  2. WordPress
  3. WordPress安装教程

宝塔环境下开启WordPress多站点(含伪静态)

为什么最近缙哥哥开始研究多站点了呢,因为多站点不用每次开个网站都要重新安装 wordpress,并且最重要的是可以多个 WordPress 网站之间用户数据共享,这才是缙哥哥想要的。否则以多站点大量插件不兼容的问题,缙哥哥是一点也不喜欢!

开启 WordPress 多站点网络配置

首先建议全新安装一个站点,并在网站根目录下的 wp-config.php 添加如下代码:

  1. /* 开启 WordPress 多站点配置 - https://www.dujin.org/12501.HTML */
  2. define('WP_ALLOW_MULTISITE', true);

缙哥哥建议将上述代码复制到下方描述的位置上面。

  1. /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */

配置多站点网络

由于缙哥哥实际操作为子目录形式,在此着重讲解。在上述“开启多站点配置”代码的下方,添加

  1. define('MULTISITE', true);
  2. define('SUBDOMAIN_INSTALL', false);
  3. define('DOMAIN_CURRENT_SITE', 'yourdomain.com');
  4. define('PATH_CURRENT_SITE', '/');
  5. define('SITE_ID_CURRENT_SITE', 1);
  6. define('BLOG_ID_CURRENT_SITE', 1);

Apache 伪静态规则

在宝塔网站设置的伪静态中设置相关代码,将下方代码加入网站根目录中的 .htaccess 文件中,替换其他 WordPress 规则:

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

Nginx 伪静态规则

由于 WordPress 默认提供的是 apache 的伪静态规则,所以这里缙哥哥利用 宝塔规则转换工具:Apache 转 Nginx 进行转换,得到如下规则:

  1. #ignored: "-" thing used or unknown variable in regex/rew 
  2. 	rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
  3. if (-f $request_filename){
  4. 	set $rule_2 1;
  5. }
  6. if (-d $request_filename){
  7. 	set $rule_2 1;
  8. }
  9. if ($rule_2 = "1"){
  10. #ignored: "-" thing used or unknown variable in regex/rew 
  11. }
  12. 	rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
  13. 	rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
  14. 	rewrite /. /index.php last;

完整 Nginx 伪静态规则

然而,缙哥哥才添加后发现并不能访问网站,研究许久,发现需要在原本的 WordPress 伪静态规则之上进行添加,在此,列出完整的 WordPress 多站点 Nginx 伪静态规则,小伙伴们可根据本教程结合自己的实际情况进行调整。

  1. location / {
  2. 	index index.html index.php;
  3. 	if (-f $request_filename/index.html){
  4. 		rewrite (.*) $1/index.html break;
  5. 	}
  6. 	if (-f $request_filename/index.php){
  7. 		rewrite (.*) $1/index.php;
  8. 	}
  9. 	if (!-f $request_filename){
  10. 		rewrite (.*) /index.php;
  11. 	}
  12.     #ignored: "-" thing used or unknown variable in regex/rew 
  13. 	rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
  14. if (-f $request_filename){
  15. 	set $rule_2 1;
  16. }
  17. if (-d $request_filename){
  18. 	set $rule_2 1;
  19. }
  20. if ($rule_2 = "1"){
  21. #ignored: "-" thing used or unknown variable in regex/rew 
  22. }
  23. 	rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
  24. 	rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
  25. 	rewrite /. /index.php last;
  26. 
    
  27. }
  28. 
    
  29. rewrite /wp-admin$ $scheme://$host$uri/ permanent;

缙哥哥建议另存为模板,比如命名为 WordPress 多站点伪静态 都可以,以免每次都要配置一遍!
宝塔环境下开启WordPress多站点(含伪静态)-云模板OK,大功告成,这时候我们重新登录进入后台主站点设置固定链接,结果发现默认增加了 blog 前缀:
宝塔环境下开启WordPress多站点(含伪静态)-云模板这可不是想要的结果,我们在左上角我的站点 → 管理网络 → 站点(所有站点) → 主站点 → 编辑 → 设置里面找到 Permalink Structure 将前面的 /blog 删掉即可
宝塔环境下开启WordPress多站点(含伪静态)-云模板记得在最下方点击保存,这样就可以完美去除 WordPress 多站点 /blog 前缀,同时不会添加 index.php,搞定收工!

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/100450

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注