2016-11-21 82 views
0

我在我的Nginx配置中匹配某些文件扩展名时遇到问题。我正在运行nginx/1.11.6Debian x64Nginx与某些文件扩展名不匹配

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

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

应该允许所有这些类型的资源来自任何域的访问。但它不适用于woffwoff2

我已经试过这样:

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

但不会连这个做任何事情。从卷曲测试

结果是这样的:

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 

任何想法,我可能是错的?

+0

您要么正在编辑错误的'server'块,要么有一个冲突的'location'或'rewrite'语句先进入。 –

回答

0

我的问题是expires.conf包含woffwoff2的选择器,并且始终先包含此文件。出于某种原因,您不能匹配一个文件两次。合并这两个选择器解决了这个问题。

如果有更好的方法来解决这个问题,请发表一个答案或评论。谢谢。

@Richard Smithcomment知道哪里可能存在问题。