Redirect nginx重定向旧站点URL并仅修改1个语言后缀

Redirect nginx重定向旧站点URL并仅修改1个语言后缀,redirect,nginx,Redirect,Nginx,我想将旧站点URL重定向到新站点。但新网站有不同的页面名称,语言字符也发生了变化 例如: map $request_uri $redirect_uri { ~*(?<lang>/\w\w/)about/info/ com/information/; } en/about/info将重定向到en/com/information map $request_uri $redirect_uri { <lang>/about/info/ $lang/com/informatio

我想将旧站点URL重定向到新站点。但新网站有不同的页面名称,语言字符也发生了变化

例如:

map $request_uri $redirect_uri {
~*(?<lang>/\w\w/)about/info/ com/information/;
}
en/about/info
将重定向到
en/com/information

map $request_uri $redirect_uri {

<lang>/about/info/ $lang/com/information/

}
但是

ge/about/info
将转到
ka/com/information

map $request_uri $redirect_uri {

<lang>/about/info/ $lang/com/information/

}
map$request\u uri$redirect\u uri{
/关于/info/$lang/com/information/
}

你知道我该怎么做吗?有很多URL,所以我不想为每种语言编写这些URL硬编码。

map指令可以捕获正则表达式的一部分,但不能在映射结果中使用该捕获

因此,可以创建名为
lang
(例如)的命名捕获,并在计算映射变量后使用它。例如:

map $request_uri $redirect_uri {
~*(?<lang>/\w\w/)about/info/ com/information/;
}
请注意,
$lang
仅在
if
语句中计算了
$redirect\u uri
的值后创建

有关详细信息,请参阅