75

静的 Web サイト ホスティング オプションを使用して、Amazon S3 で静的 Web サイトをホストしているため、S3 は index.html ファイルを明示的に指定せずにフォルダーをレンダリングします。

たとえば、ここに私の S3 バケット内のページへの直接リンクがあります: http://new.rdegges.com.s3-website-us-east-1.amazonaws.com/category/2009/その URL にアクセスすると、Amazon S3 はそのディレクトリ内の index.html ファイルを自動的にレンダリングし、きれいな URL を取得できるようにします。

これはすべてS3で正常に機能します。私が抱えている問題は、Amazon Cloudfront がこの動作も適切に処理できるようにすることです。S3 バケットをオリジンとして指定して Cloudfront ディストリビューションを作成し、「index.html」をルートとして使用するように指示すると、S3 の index.html の動作がすべて一緒に機能しなくなります。

たとえば、Cloudfront で上記と同じ URL を次に示します: http://d1mj00c6pby3gc.cloudfront.net/category/2009/

残念ながら、上記の URL は機能しませんが、インデックス ファイルを手動で指定すると機能します

私の質問は、Web サイトの S3 バケット設定を尊重するように Cloudfront を構成するにはどうすればよいですか?

4

3 に答える 3

121

S3 ウェブサイトの機能は、Amazon CloudFront と組み合わせて使用​​できます。ただし、S3 ウェブサイトは通常の S3 バケットとは異なるドメイン名を使用します。この場合、Origin Domain NameCloudFront ディストリビューションのオリジン構成をに設定する必要がありますnew.rdegges.com.s3-website-us-east-1.amazonaws.com

S3 の Static Website Hosting パネルからこの URL (エンドポイント) を取得できます。

S3 の静的 Web サイト ホスティング パネル

CloudFront が S3 ウェブサイトのドメイン名を指すようになると、S3 ウェブサイトの機能が動作するはずです。

于 2013-03-20T16:04:54.940 に答える
26

受け入れられた回答にいくつか追加したいと思います。

まず、Default Root Objectクラウド フロントに があることを確認します。ドキュメントで指定されているように、これは には適用されませんsubdirectories

クラウドフロントの新しいディストリビューションをセットアップするときに、バケットを選択できますbucket-name.s3.amazonaws.com。URL で地域が指定されていないことに注意してください。あなたがする必要があるのは、s3 から静的サイトの URL を取得し、それをとして使用することですorigin url(リージョンはそこにあります)。

于 2014-06-05T22:28:15.223 に答える