AWS CloudFront 默认根对象和子目录

Luk*_*ith 6 amazon-s3 amazon-cloudfront amazon-web-services

我正在 S3 和 CloudFront 上托管 Jekyll 博客。在 S3 上设置默认文档工作正常,所有子文件夹本机都转到 index.html。

在我的 CloudFront 发行版中,我已将默认根对象设置为 index.html,但子目录没有得到这个 - 相反,我收到以下错误

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>about</Key>
<RequestId>F8324894C093EB53</RequestId>
<HostId>
Girhbo7YLEl9sxPS3KjvhbkpL32qNsYgiVLElAhPOvqrekfqfpJ/2AAYRg4rNJ+t4Imc86cjiw4=
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

如果我手动浏览到 domain/subdir/index.html 它工作正常。

有任何想法吗?

Mic*_*bot 8

使用具有网站托管功能(启用索引文档)的 S3 存储桶时,您不想使用存储桶的 REST 端点,这是 CloudFront 在控制台中为您提供的。您需要输入网站端点。

在创建分配页面上,对于源设置,在源域名框中键入您的存储桶的 Amazon S3 静态网站托管终端节点,例如:example.com.s3-website-us-east-1.amazonaws.com

重要的

不要从列表中选择您的存储桶的名称,例如example.com.s3.amazonaws.com.

http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-cfdist.html

您还可以关闭 CloudFront 中的默认根对象配置。这个设置不需要。

请记住,您可能会在更改传播后缓存错误响应几分钟。检查X-CacheAge响应标头以确定您是否看到缓存的响应以及响应被缓存的时间。