Amazon S3 バケットを使用して静的ウェブサイトをホストしています。バケットがウェブサイトのインデックスページではなくオブジェクトのリストを返すのはなぜですか?

最終更新日: 2020 年 2 月 24 日

Amazon Simple Storage Service (Amazon S3) バケットを使用して静的ウェブサイトをホストしています。バケットにリクエストを送信すると、ウェブサイト用に設定したインデックスページではなく、オブジェクトの XML リストが表示されます。このような問題が発生している理由は何ですか? Amazon S3 でインデックスページが返ってくるようにするにはどうすればよいですか?

簡単な説明

Amazon S3 バケットには、ウェブサイトエンドポイントと REST API エンドポイントの 2 つのエンドポイントがあります。ウェブサイトエンドポイントは次のフォーマットを使用します。

bucket-name.s3-website-us-west-2.amazonaws.com

REST API エンドポイントは次のフォーマットを使用します。

bucket-name.s3-us-west-2.amazonaws.com

バケットに GET リクエストを送信する場合、Amazon S3 がインデックスページ (Amazon S3 コンソールでは「インデックスドキュメント」と呼ばれます) を返すには、リクエストをウェブサイトエンドポイントに送信する必要があります。REST API エンドポイントに GET リクエストを送信すると、Amazon S3 はバケット内のオブジェクトのリストを返します

Amazon S3 オリジンで Amazon CloudFront ディストリビューションを使用する場合、Amazon S3 がインデックスページを返すようにするには、インデックスページをデフォルトのルートオブジェクトとして設定することも必要です。

重要: エンドポイントは AWS リージョンによって異なります。リージョン別のウェブサイトエンドポイントについては、Amazon Simple Storage Service ウェブサイトエンドポイントを参照してください。リージョンごとの REST API エンドポイントについては、AWS リージョンとエンドポイント - Amazon Simple Storage Service (Amazon S3) を参照してください。

解決方法

以下の手順に従って、バケットのウェブサイトエンドポイントを検索します。

  1. Amazon S3 コンソールを開きます。
  2. バケットリストから、静的ウェブサイトをホストするのに使用しているバケットを選択します。
  3. [Properties] ビューを選択し、[Static website hosting] を選択します。
    [Endpoint] として表示される値がウェブサイトエンドポイントです。

Amazon S3 オリジンで CloudFront ディストリビューションを使用している場合は、以下の手順に従って、ディストリビューションのデフォルトルートオブジェクトをインデックスページに設定します。

  1. [CloudFront コンソール] を開きます。
  2. ディストリビューションリストから、S3 バケットに関連付けられたディストリビューションを選択します。
  3. [General] ビューから [Edit] を選択します。
  4. Default Root Object の欄に、インデックスページのオブジェクト名 (例: index.html) を入力します。
  5. [Yes, Edit] をクリックします。

このページは役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合