メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

ウェブページリダイレクトの設定

Amazon S3 バケットがウェブサイトホスティング用に設定されている場合は、特定のオブジェクトに対するリクエストを、同じバケット内の別のオブジェクトか外部 URL にリダイレクトできます。リダイレクトを設定するには、オブジェクトメタデータに x-amz-website-redirect-location プロパティを追加します。 それにより、ウェブサイトは 301 リダイレクトとしてオブジェクトを解釈します。リクエストを別のオブジェクトにリダイレクトするには、リダイレクト場所をターゲットオブジェクトのキーに設定します。リクエストを外部 URL にリダイレクトするには、リダイレクト場所を目的の URL に設定します。オブジェクトメタデータの詳細については、システム定義のメタデータ を参照してください。

ウェブサイトホスティング用に設定されたバケットには、ウェブサイトエンドポイントと REST エンドポイントの両方があります。リクエストされたページが 301 リダイレクトとして設定されている場合の結果は、リクエストのエンドポイントに応じて、次のようになると考えられます。

  • リージョン固有のウェブサイトエンドポイント – Amazon S3 は、x-amz-website-redirect-location プロパティの値に従ってページリクエストをリダイレクトします。

  • REST エンドポイント – Amazon S3 はページリクエストをリダイレクトしません。リクエストされたオブジェクトを返します。

エンドポイントの詳細については、「Amazon ウェブサイトと REST API エンドポイントの主な違い」を参照してください。

ページリダイレクトの設定は、Amazon S3 コンソールから行うことも、Amazon S3 REST API を使用して行うこともできます。

Amazon S3 コンソールでのページリダイレクトのサポート

Amazon S3 コンソールを使用して、オブジェクトのメタデータでウェブサイトのリダイレクト場所を設定できます。ページリダイレクトを設定するときに、ソースオブジェクトコンテンツを維持することも、削除することもできます。たとえば、バケットに page1.html オブジェクトがあるとします。このページに対するリクエストをすべて別のオブジェクト page2.html にリダイレクトするには、次のいずれかを行います。

  • page1.html オブジェクトのコンテンツを維持し、ページリクエストのみをリダイレクトするには、page1.html オブジェクトを選択します。

    page1.html の [Properties] タブを選択し、[Metadata] ボックスを選択します。次の例に示すように、[Website Redirect Location] をメタデータに追加し、その値を /page2.html に設定します。値の / というプレフィックスは必須です.

    値を外部 URL に設定することもできます。例えば http://www.example.com です。

  • page1.html オブジェクトのコンテンツを削除してリクエストをリダイレクトするには、同じキー page1.html で 0 バイトの新しいオブジェクトをアップロードし、既存のオブジェクトを置き換えて、アップロードプロセスで page1.htmlWebsite Redirect Location を指定します。オブジェクトのアップロードについては、Amazon Simple Storage Service コンソールユーザーガイドの「S3 へのオブジェクトのアップロード」を参照してください。

REST API からのページリダイレクトの設定

次の Amazon S3 API アクションでは、リクエストで x-amz-website-redirect-location ヘッダーを使用できます。Amazon S3 により、オブジェクトメタデータのヘッダー値として x-amz-website-redirect-location が格納されます。

ページリダイレクトを設定する場合、オブジェクトのコンテンツを維持するか、削除できます。例えば、バケットに page1.html というオブジェクトがあるとします。

  • page1.html のコンテンツを維持し、ページリクエストのリダイレクトのみを行う場合は、PUT Object - Copy リクエストを送信して新しい page1.html オブジェクトを作成し、ソースとして既存の page1.html オブジェクトを使用するように設定します。リクエストに、x-amz-website-redirect-location ヘッダーを設定します。リクエストが完了すると、元のページのコンテンツは変更されないままで、ページへのすべてのリクエストは指定されたリダイレクト場所に Amazon S3 によりリダイレクトされます。

  • page1.html オブジェクトのコンテンツを削除してこのページに対するリクエストをリダイレクトするには、PUT Object リクエストを送信して 0 バイトのオブジェクトをアップロードします。このオブジェクトには、同じオブジェクトキー page1.html を付けます。この PUT リクエストの中で、page1.html x-amz-website-redirect-location を新しいオブジェクトに設定します。このリクエストが完了すると、page1.html にはコンテンツがない状態になり、リクエストは x-amz-website-redirect-location で指定された場所にリダイレクトされます。

GET Object アクションを使用して、他のオブジェクトメタデータと一緒にオブジェクトを取得すると、Amazon S3 はレスポンスで x-amz-website-redirect-location ヘッダーを返します。