将 2 个 url (%20) 重定向到 nginx 中的一个

Redirect 2 urls (%20) to one in nginx

我有一个我无法解决的问题。我有一个 nginx 服务器,我必须进行这种类型的重定向。

http://midomain.com/xxxx/xxxx/ http://wikipedia.com/xx --> http://midomain.com/yyyy

因为我有两个带有 space 的 url,所以没有办法让它工作。

我试过很多方法

rewrite ^/xxxx/xxxx/\ http://wikipedia.com/xx http://midomain.com/yyyy permanent;
rewrite "^/xxxx/xxxx/\ http://wikipedia.com/xx" http://midomain.com/yyyy permanent;
rewrite ^/xxxx/xxxx/%20http://wikipedia.com/xx http://midomain.com/yyyy permanent;
rewrite "^/xxxx/xxxx/%20http://wikipedia.com/xx" http://midomain.com/yyyy permanent;
rewrite ^/xxxx/xxxx/\ http://wikipedia.com/xx/$ http://midomain.com/yyyy permanent;
rewrite "^/xxxx/xxxx/\ http://wikipedia.com/xx/$" http://midomain.com/yyyy permanent;
rewrite ^/xxxx/xxxx/%20http://wikipedia.com/xx/$ http://midomain.com/yyyy permanent;

不知道是不是我做错了

Nginx 在通过 rewrite 处理之前规范化 URI。 %20 被解析为文字 space 字符,连续的 / 字符被单个 / 替换。是最后一点给您带来了麻烦。

例如:

rewrite "^/xxxx/xxxx/ http:/wikipedia\.com/xx$" http://midomain.com/yyyy permanent;