我想将旧网站的网址重定向到新网站。但新网站的页面名称不同,语言字符也发生了变化。
例如:
en/about/info
会重定向到en/com/information
但是
ge/about/info
将转到ka/com/information
map $request_uri $redirect_uri {
<lang>/about/info/ $lang/com/information/
}
任何想法我会怎么做?有很多网址,所以我不想写这些针对每种语言硬编码的网址。
答案 0 :(得分:0)
map
指令可以捕获正则表达式的一部分,但不能在映射结果中使用该捕获。
因此可以创建名为lang
的命名捕获(例如),并在评估映射变量后使用。例如:
map $request_uri $redirect_uri {
~*(?<lang>/\w\w/)about/info/ com/information/;
}
在server
或location
区块中:
if ($redirect_uri) {
return 301 $lang$redirect_uri;
}
请注意,$lang
仅在$redirect_uri
语句中评估if
的值后创建。
有关详细信息,请参阅this document。