我刚刚为一个网站创建了一个新结构,我需要一些关于重定向到新地方的帮助。
有效的代码在这里,但我猜这还可以进行很多优化。
location = /nl {
rewrite ^ $scheme://$server_name permanent;
}
location = /nl/ {
rewrite ^ $scheme://$server_name permanent;
}
location = /en {
rewrite ^ $scheme://$server_name permanent;
}
location = /en/ {
rewrite ^ $scheme://$server_name permanent;
}
location = /nl/contact {
rewrite ^ $scheme://$server_name/contact/ permanent;
}
location = /en/contact {
rewrite ^ $scheme://$server_name/contact/ permanent;
}
答案1
重写不必在位置块中 - 并且可以与正则表达式匹配。
经过两次重写,您可能会取得一些成功:
rewrite ^/(en|nl)(/contact)(/?)$ $scheme://$server_name/contact/ permanent;
rewrite ^/(en|nl)(/?)$ $scheme://$server_name permanent;
或者,您可以将前 4 个和后 2 个位置块与正则表达式匹配相结合 - 但这确实会影响匹配优先级(可能不是很重要)。
(感谢@Saif Bechan 修正了我原来的提议)