宝塔环境下开启WordPress多站点(含伪静态)
以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 为什么最近缙哥哥开始研究多站点了呢,因为多站点不用每次开个网站都要重新安装 wordpress,并且最重要的是可以多个 WordPress 网站之间用户数据共享,这才是缙哥哥想要的。否则以多站点大量插件不兼容的问题,缙哥哥是一点也不喜欢! 开启 WordPress 多站点网络配置首先建议全新安装一个站点,并在网站根目录下的 wp-config.php 添加如下代码: /* 开启 WordPress 多站点配置 - https://www.dujin.org/12501.html */ define('WP_ALLOW_MULTISITE',true); 缙哥哥建议将上述代码复制到下方描述的位置上面。 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ 配置多站点网络由于缙哥哥实际操作为子目录形式,在此着重讲解。在上述“开启多站点配置”代码的下方,添加 define('MULTISITE',true); define('SUBDOMAIN_INSTALL',false); define('DOMAIN_CURRENT_SITE','yourdomain.com'); define('PATH_CURRENT_SITE','/'); define('SITE_ID_CURRENT_SITE',1); define('BLOG_ID_CURRENT_SITE',1); Apache 伪静态规则在宝塔网站设置的伪静态中设置相关代码,将下方代码加入网站根目录中的 .htaccess 文件中,替换其他 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] Nginx 伪静态规则由于 WordPress 默认提供的是 apache 的伪静态规则,所以这里缙哥哥利用 宝塔规则转换工具:Apache 转 Nginx 进行转换,得到如下规则: #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; 完整 Nginx 伪静态规则然而,缙哥哥才添加后发现并不能访问网站,研究许久,发现需要在原本的 WordPress 伪静态规则之上进行添加,在此,列出完整的 WordPress 多站点 Nginx 伪静态规则,小伙伴们可根据本教程结合自己的实际情况进行调整。 location / { index index.html index.php; 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; } #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; ? } ? rewrite /wp-admin$ $scheme://$host$uri/ permanent; 缙哥哥建议另存为模板,比如命名为 WordPress 多站点伪静态 都可以,以免每次都要配置一遍! OK,大功告成,这时候我们重新登录进入后台主站点设置固定链接,结果发现默认增加了 blog 前缀: 这可不是想要的结果,我们在左上角我的站点 → 管理网络 → 站点(所有站点) → 主站点 → 编辑 → 设置里面找到 Permalink Structure 将前面的 /blog 删掉即可 记得在最下方点击保存,这样就可以完美去除 WordPress 多站点 /blog 前缀,同时不会添加 index.php,搞定收工! 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |