我刚刚在我的专用服务器上安装并部分配置了 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
并且它正确捕获了它,看看它是否有效。