S3のRedirection Rulesを使ってみる[cloudpack大阪ブログ]
ちょっとS3を最近さわっていないので忘れないように復習してた所、Redirection Rulesの設定を試してみたので設定方法の備忘録です。
今回は「foo/」にアクセスしたら「bar/」にリダイレクトするよう設定します。
前提条件
・S3よりBuketを作成しておく
・Webサイトのホスティングを有効にしておく
→インデックスドキュメントとエラードキュメントも設定
確認の流れ
まずはBuketよりプロパティを開いて静的ウェブサイトホスティングを選択
リダイレクトルールを編集するを選択してテキストエリアにルールを記載して保存する
<ルール内容>
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>foo/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>bar/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>foo/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>bar/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
設定したら実際に試してみます。
curlコマンドにて「foo/」が「bar/」にリダイレクトされている事がわかります。
コマンド:curl -I http://<エンドポイント>/foo/
次に事前にエラー用のhtmlファイルも設定してましたが404エラーが発生した際のリダイレクト設定を行います。
→Buketに404用のhtmlファイルを追加しておきます
Redirection Rulesに下記を追加します。
<追加ルール>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>404.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>404.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
設定後にcurlコマンドで404エラーがリダイレクトされている事を確認します。
<変更前>
<変更後>
今回S3の環境を構築したのでDNS設定してCloudFrontと連携させてみようと思います。