需要一些关于优化 nginx 中的 301 重定向的帮助

需要一些关于优化 nginx 中的 301 重定向的帮助

我刚刚为一个网站创建了一个新结构,我需要一些关于重定向到新地方的帮助。

有效的代码在这里,但我猜这还可以进行很多优化。

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 修正了我原来的提议)

相关内容