Nginx下多个不同子目录下的wordpress伪静态设置

最近开发 wordpress 的一个插件,需要在二级子目录下测试,有不少教程是关于顶级域名访问绑定在二级子目录下的wordpress,这个真用不上,于是各种折腾出如下效果!

wordpress放置于子目录 /wp/ 中,访问域名形如: http://test.yangjunwei.com/wp/。

找到 /usr/local/nginx/conf/nginx.conf 中关于 test.yangjunwei.com 的设置部分,将如下子目录wordpress伪静态规则添加进去即可。

location /wp/ {
	if (-f $request_filename/index.html){
		rewrite (.*) $1/index.html break;
	}
	
	if (-f $request_filename/index.php){
		rewrite (.*) $1/index.php last;
	}
	
	if (!-f $request_filename){
		rewrite (.*) /wp/index.php last;
	}
}

如果多个不同子目录下均安装有 wordpress ,则将上述复制多份即可。

注:其中 break 的意思是立即断开转发,因此不能将其中的 last 替换为 break,否则将会造成访问不正常。