nginx 重定向到子域名,即使没有尾部斜杠

nginx 重定向到子域名,即使没有尾部斜杠

我刚刚在我的专用服务器上安装并部分配置了 nginx。但我对正则表达式的理解有些困难。我想让 nginx 将 www.mydomain.com/forum/ 和 www.mydomain.com/forum(请注意缺少尾部斜杠;不区分大小写;同样适用于“forums”而不是“forum”)重定向到 forum.mydomain.com/。这就是我想出的办法:

location ~* ^/(forum|forums) {
rewrite ^/(.*)/(.*)$ http://forum.mydomain.com/$2? permanent;
}

...但由于某种原因,它只适用于尾随斜杠。:-/

请帮助我!提前致谢!

答案1

尝试:

location ~* ^/(forum|forums)/? {
   rewrite ^/(.*)/(.*)$ http://forum.mydomain.com/$2? permanent;
}

编辑:

好的,该定位似乎正在工作,问题可能出在重写行上。

location ~* ^/forums?/?$ {
   rewrite /forums?/?(.*) http://forum.mydomain.com/$1 permanent;
}

测试了正则表达式pcretest并且它正确捕获了它,看看它是否有效。

相关内容