使用Nginx将iso-88591-1网址重定向到utf-8网址

时间:2018-11-07 18:27:36

标签: nginx

我们刚刚将网站内容从iso-8859-1切换为utf-8-这不是问题。但是,我们在以前的URL中也有iso-8859-1。现在,我们用包含utf8的新网址替换了自己的网址。

问题是我们真的希望我们的旧网址也能正常工作。

nginx中是否可以将所有包含iso-8859-1的URL重定向到等效于utf8的url?

示例:

Old url: https://www.example.com/author/Arne%20Sj%F6berg.html
New url: https://www.example.com/author/Arne%20Sj%C3%B6berg.html

1 个答案:

答案 0 :(得分:0)

如果%F6是唯一需要翻译的iso-8859-1字符,则很有可能它不与新URI重叠(尚未)。

您可以对包含原始百分比编码字符的$request_uri变量应用正则表达式。

例如:

if ($request_uri ~ "^(.*)%F6(.*)$") { 
    return 301 $1%C3%B6$2;
}