web-dev-qa-db-ja.com

AWS CloudFrontデフォルトルートオブジェクトとサブディレクトリ

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>

Domain/subdir/index.htmlを手動で参照すると、正常に機能します。

何か案は?

5
Luke Griffith

Webサイトホスティング機能(インデックスドキュメントを有効にする)でS3バケットを使用する場合、CloudFrontがコンソールで提供するバケットのRESTエンドポイントを使用したくない代わりに、ウェブサイトのエンドポイントを入力する必要があります。

[ディストリビューションの作成]ページの[オリジン設定]で、バケットのAmazonS3静的ウェブサイトホスティングエンドポイントを[オリジンドメイン名]ボックスに入力します(例: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-CacheおよびAge応答ヘッダーをチェックして、キャッシュされた応答が表示されているかどうか、および応答がキャッシュされたのはどのくらい前かを確認します。

7