首页 > 解决方案 > nginx如何返回动态URL地址

问题描述

server {
        listen 6677;

        location /api/tt {
            charset utf-8;
            default_type text/html;

            set $test 0;
            if ($arg_url) {
                set $test 1;
            }

            if ($arg_url ~* "^(?<scheme2>https?)://(?<address>.*)") {
                set $test  "${test}2";
            }

            add_header X-test $test;

            if ($test = 12) {
                return $scheme2://$address;
                # return $arg_url;
            }

            return 400 "<p>error: need url</p>";
        }
}

访问“http://localhost:6677/api/tt?url=https://google.com”时会重定向到“https://google.com”

但是,当我使用 时return $arg_url;,文本“https://google.com”会返回给我。如何直接使用$arg_url变量重定向到“https://google.com”

标签: nginx

解决方案


我建议像这样进行 303 重定向:

return 303 <URL>;

推荐阅读