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を手動で参照すると、正常に機能します。
何か案は?
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
応答ヘッダーをチェックして、キャッシュされた応答が表示されているかどうか、および応答がキャッシュされたのはどのくらい前かを確認します。