我正在尝试设置运行良好的Amazon CloudFront。
一切正常,适用于access-control-allow-origin "*"
我在.htaccess文件中添加了以下内容:
<ifModule mod_headers.c>
<FilesMatch \.(eot|ttf|otf|svg|tif|tiff|woff)$>
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</ifModule>
检查服务器上的文件direclty,它运行正常:
curl -I https://domain.com/fonts/font.woff
我得到了结果Access-Control-Allow-Origin: *
但是当我检查它是否为Amazon CloudFront网址时,它不起作用。它没有添加到标题中。
我还将“Origin”添加到白名单中,请参阅:
但它仍然不起作用,它不会添加到标题中。
修改
当我创建一个新的.woff文件并通过CloudFront Access-Control-Allow-Origin: *
加载它时,仍然无法编辑。所以我仍然想念一些东西,我错过了什么?
查看我的标题:
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=iso-8859-1
Content-Length: 0
Connection: keep-alive
Date: Fri, 23 Dec 2016 08:05:32 GMT
Server: Apache/2
Strict-Transport-Security: max-age=10886400; includeSubDomains; preload
Location: https://domain.com/fonts/font_2.woff
Cache-Control: max-age=2592000
Expires: Sun, 22 Jan 2017 08:05:32 GMT
Age: 21
X-Cache: Hit from cloudfront
Via: 1.1 9635c619f121d7a236fe1312f20e5f1b.cloudfront.net (CloudFront)
X-Amz-Cf-Id: Ygkldos5hh6s5AwolxfL5nzoxsNJPl-vpmeoNZ8fEGSKPVCgzbIFtg==
我错过了什么?
编辑2:
看起来是因为我在.htaccess中的当前https重定向。见:
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
如何解决这个问题?
答案 0 :(得分:1)
它可能在缓存中读取。如果您可以重新启动IIS,则可以修复或等待。