AWS S3 の静的 Web ホスティングでリダイレクトを使う

AWS のストレージサービスである「S3」は、設定することで静的 Web サイトのホスティングが可能です。S3 と Lambda を組み合わせて使用することで動的な機能を利用することも出来ますが、S3 単体ですと例えば「User-Agent を見分けて処理を変化させる」といった高度な処理は出来ないようです。但し、HTTP リダイレクトコード(301)を使った単純なリダイレクトであれば S3 単体でも利用することが出来ます。

例えば http://FQDN/REDIRECT/FROM/ へのアクセスを http://FQDN/REDIRECT/TO/ にリダイレクトするには S3 に以下のようなリダイレクトルールを設定します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<RoutingRules>
    <RoutingRule>
        <Condition>
            <KeyPrefixEquals>REDIRECT/FROM/</KeyPrefixEquals>
        </Condition>
        <Redirect>
            <ReplaceKeyPrefixWith>REDIRECT/TO/</ReplaceKeyPrefixWith>
            <HttpRedirectCode>301</HttpRedirectCode>
        </Redirect>
    </RoutingRule>
</RoutingRules>