AWS CloudFront默认根对象和子目录

我正在S3和CloudFront上主持一个Jekyll博客。 在S3上设置默认文档可以正常工作,所有子文件夹本身都会转到index.html。

在我的CloudFront发行版中,我已经将Default Root Object设置为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> 

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

有任何想法吗?

当使用具有网站托pipefunction的S3存储桶(启用索引文档)时,您不希望使用存储桶的REST端点,这是CloudFront将在控制台中提供的。 您需要input网站端点,而不是。

在“创build分发”页面上的“源设置”中,在“源域名”框中键入您的存储桶的Amazon S3静态网站托pipe端点,例如: example.com.s3-website-us-east-1.amazonaws.com

重要

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

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

您也可以closuresCloudFront中的默认根对象configuration。 这不需要这个设置。

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