Nginx http_accept无法映射到变量以进行内容协商

时间:2017-09-28 20:12:52

标签: nginx mime-types content-type

目标是使用 -

npm install --save-dev @types/selenium-webdriver 值映射到文件类型
Content-Type

由 -

处理
# nginx.conf
map $http_accept $suffix {
    "~*turtle" ".ttl";
    default    "DEFAULT";
}

但是,响应总是给出 -

# sites-available/site
location /ontologies {
    root /folder;
    add_header Vary Accept;
    add_header X-debug-accept "$http_accept";
    add_header X-debug-suffix "$suffix";
    try_files $uri$suffix $uri =404;
}

1 个答案:

答案 0 :(得分:2)

您的问题是您正在访问错误的标题。您应该使用$http_content_type而不是$http_accept

# curl -v -I -H "Content-type: text/turtle" URL
*   Trying ::1...
* Connected to localhost (::1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.47.0
> Accept: */*
> Content-Type: text/turtle

如你所见,你通过了Content-Type而不是Accept。因此,根据您需要使用正确的变量。 $http_content_type$http_accept