nginx如何返回动态URL地址 服务器{ 听6677; 位置/api/tt{ 字符集utf-8; 默认类型为text/html; 设置$test0; 如果($arg_url){ 设置$test1; } 如果($arg_url~*”^(?https?:/(?*)){ 设置$test“${test}2”; } 添加_标题X-test$test; 如果($test=12){ 返回$scheme2://$address; #返回$arg_url; } 返回400“

nginx如何返回动态URL地址 服务器{ 听6677; 位置/api/tt{ 字符集utf-8; 默认类型为text/html; 设置$test0; 如果($arg_url){ 设置$test1; } 如果($arg_url~*”^(?https?:/(?*)){ 设置$test“${test}2”; } 添加_标题X-test$test; 如果($test=12){ 返回$scheme2://$address; #返回$arg_url; } 返回400“,nginx,Nginx,错误:需要url”; } } 访问时“http://localhost:6677/api/tt?url=https://google.com“将重定向到”https://google.com" 但是,当我使用返回$arg_url,文本“https://google.com“他还给了我。如何直接使用$arg_url变量重定向到“https://google.com“我建议这样做303重定向: server { listen 6677; location /api

错误:需要url

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


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

我建议这样做303重定向:

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>";
        }
}
返回303;

这正是我想要的,谢谢
return 303 <URL>;