WordPress多站点模式 在Nginx下的rewrite配置方法
最近在把很多应用从Apache转入Nginx下,遇到最棘手的问题莫过于两个平台下rewrite规则的重新调整,下面就拿WordPress为例,和大家分享一下WordPress在多站点模式下,如何配置Nginx中的rewrite规则。
我们在开启WordPress(版本:3.2.1)多站点模式的过程中,会提示我们将一段rewrite写入.htaccess文件中,如下:
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L]
# uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin 1wp-admin/ [R=301,L]
1 [L] RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php) 1 [L] RewriteRule . index.php [L]
上面这些规则是应用于Apache的,到了Nginx下是行不通的,我们需要对规则进行一些调整。开始,我从网上找了很多案例进行尝试,没有一个能够正常运行,于是经过一番摸索后,写出了下面的规则,WordPress多站点模式在这套规则下可以正常运行。
下面是我调整后的Nginx下rewrite规则:
location ~ /[_0-9a-zA-Z-]+/wp-admin/$ { rewrite ^/[_0-9a-zA-Z-]+/wp-admin/$ /wp-admin/ break; } location ~ /[_0-9a-zA-Z-]+/wp-([a-zA-Z-])*\.php { rewrite ^/[_0-9a-zA-Z-]+/(.*\.php) /$1 last; } location ~ /[_0-9a-zA-Z-]+/wp-(admin|content|includes).* { rewrite ^/[_0-9a-zA-Z-]+/(wp-(admin|content|includes).*) /$1; } location / { if (-f $request_filename) { break; } if (!-e $request_filename) { rewrite . /index.php last; } }
阳光部落原创,更多内容请访问 http://www.sunbloger.com/
相关文章
- 常见算法合集[java源码+持续更新中...]
- 分布式事务(二)Java事务API(JTA)规范
- 北漂不易,逆风前行[给想在北京工作的java同学们诚恳的建议!]
- Java工程师的生活、读书、技术栈
- 十大基础排序算法[java源码+动静双图解析+性能分析]
- 分享两个免费下载Windows系统镜像
- CSRF-跨站请求伪造-相关知识
- 在VMware上安装Metasploitable2
- SSRF-服务器端请求伪造-相关知识
- RCE-远程命令执行和代码执行漏洞-知识
- 文件包含漏洞-知识点
- 包含漏洞-读写文件以及执行命令
- XXE-XML外部实体注入-知识点
- Ninjutsu_v3_08_2020-安全渗透系统安装
- 单兵渗透工具-Yakit-Windows安装使用
- SpringBoot-快速搭建并快速验证是否可用
- Metasploit-模块介绍
- Kali-登录暴力破解器工具-medusa使用
- PS软件下载及安装Photoshop cc 2018下载链接及安装教程(包括2023版本)
- 顺应时代趋势,CSN的安全可控之路