Nginx 重定向到编码的 URL 作为 nginx 中的参数传递?

Nginx redirecting to an encoded URL passed as a argument in nginx?

我想从 nginx 重定向到 URL,它以编码形式作为参数发送。

location /v1/redirect {
        access_log /var/log/nginx/redirect/access.log main;
        error_log /var/log/nginx/redirect/error.log;
        return 302 $arg_dest;
        }

当我传递未编码的 URL 例如https://ex2.example2.com/v1/redirect?dest=https://ex1.example2.com 工作正常。

但是将 dest 参数编码为 https://ex2.example2.com/v1/redirect?dest=https%3A%2F%2Fex1.example2.com。我收到状态代码 304,我的 URL 正在更改为 https://ex2.example2.com/v1/https%3A%2F%2Fex1.example2.com

谁能帮我找出我做错了什么,有没有办法在传递给 return 之前 URL 解码 arg_dest?谢谢

njs可以用来解决上面的问题。看看https://github.com/xeioex/njs-examples/blob/master/conf/http/decode_uri.conf and https://github.com/xeioex/njs-examples/blob/master/njs/http/decode_uri.js解决上面的问题