nginx配置中的条件块显然不起作用

问题描述 投票:0回答:1

我需要在Nginx配置中将CORS标头添加到虚拟主机。我只想在某些条件下显示标题,但是如果适当地阻止,则无法进行工作。我希望总是添加if块内的头,但不添加任何头,包括if块外的头。这是我的配置:

    location /images/ {
            fastcgi_pass    localhost:9000;
            fastcgi_param   PATH_INFO $fastcgi_script_name;
            fastcgi_param   REQUEST_METHOD $request_method;
            fastcgi_param   QUERY_STRING $query_string;
            fastcgi_param   CONTENT_TYPE $content_type;
            fastcgi_param   CONTENT_LENGTH $content_length;
            fastcgi_param   SERVER_PROTOCOL $server_protocol;
            fastcgi_param   REQUEST_URI $request_uri;
            fastcgi_param   HTTPS $https if_not_empty;
            set $cors "test";
            set $mytest "true";
            add_header 'Test2' "$mytest";
            if ($cors = "test") {
              add_header 'Access-Control-Allow-Origin' "$http_origin" always;
              add_header 'Access-Control-Allow-Credentials' 'true' always;
              add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
              add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
            }
   }
nginx nginx-location nginx-config
1个回答
0
投票

您可以做的是使用map指令替换:

map
© www.soinside.com 2019 - 2024. All rights reserved.