Nginx与某些文件扩展名不匹配

时间:2016-11-21 22:57:51

标签: nginx

我在Nginx配置中匹配某些文件扩展名时遇到问题。我在 Debian x64 上运行 nginx / 1.11.6

我有这个配置:(位于服务器{}块)

location ~* \.(ttf|ttc|otf|eot|woff|woff2|css|js)$ {
    add_header Access-Control-Allow-Origin "*";
}

它应该允许从任何域访问所有这些类型的资源。但它对woffwoff2无效。

我试过这个:

location ~* \.woff2$ {
    return 403;
}

但即使这样做也没有。

CURL测试的结果如下:

curl -s -I -X GET https://cdn.xxxxx.xxx/font.woff2

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 21 Nov 2016 22:41:27 GMT
Content-Type: font/woff2
Content-Length: 14552
Last-Modified: Mon, 21 Nov 2016 22:31:42 GMT
Connection: keep-alive
ETag: "583375ce-38d8"
Expires: Wed, 21 Dec 2016 22:41:27 GMT
Cache-Control: max-age=2592000
Cache-Control: public
Accept-Ranges: bytes

知道我哪里错了吗?

1 个答案:

答案 0 :(得分:0)

我的问题是expires.conf包含woffwoff2的选择器,并且此文件始终包含在内。由于某种原因,无法匹配一个文件两次。合并这两个选择器解决了这个问题。

如果有更好的解决方法,请发表回答或评论。谢谢。

了解@Richard Smithcomment可能存在哪些问题。