access-control-allow-origin(CORS)Amazon CloudFront

时间:2016-12-22 14:50:12

标签: .htaccess amazon-web-services amazon-cloudfront

我正在尝试设置运行良好的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”添加到白名单中,请参阅:

enter image description here

但它仍然不起作用,它不会添加到标题中。

修改

当我创建一个新的.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]

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

它可能在缓存中读取。如果您可以重新启动IIS,则可以修复或等待。