【AWS S3】リダイレクト設定
S3でリダイレクトの設定をする方法 備忘録
下記の設定を完了済みで、S3にデプロイしたファイルにアクセスできる前提で、進めます
上記STEP1の
8. (オプション) 高度なリダイレクトツールを指定する場合は、[Edit redirection rules] ボックスに、ルールを記述するための XML を入力します。
の部分のルール記述方法を詳しくみていきます
リファレンスは下記
*RoutingRulesタグで囲む
RoutingRulesタグ内に、RoutingRuleタグをルールの数だけ記載する
<RoutingRules>
<RoutingRule>
#ここにルールの一つ目を記載
</RoutingRule><RoutingRule>
#ここにルールの二つ目を記載
</RoutingRule>
</RoutingRules>
*RoutingRule内にリダイレクトする条件がある場合はCondition タグを使用
/imagesフォルダ内で404エラーが出た場合は、/404/404_images.htmlにリダイレクトする例
<RoutingRules>
<RoutingRule><Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
<KeyPrefixEquals>images/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>404/404_images.html</ReplaceKeyWith>
</Redirect></RoutingRule>
</RoutingRules>
*リダイレクトの設定はRedirectタグ内に記載
古いディレクトリ内(oldfolder/*)にアクセス(例えばhttp://olddomain.com/oldfolder/page1.htmlにアクセス)された場合に、
https//newdomain.com/newfolder/page1.htmlにリダイレクト(コード301)する例
<RoutingRules>
<RoutingRule><Condition>
<KeyPrefixEquals>oldfolder/</KeyPrefixEquals>
</Condition>
<Redirect>
<Protocol>https</Protocol>
<HostName>newdomain.com</HostName>
<ReplaceKeyPrefixWith>newfolder/</ReplaceKeyPrefixWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
*注意点
リダイレクトは、httpのエンドポイント(http://BUCKETNAME.s3-website-ap-REGION.amazonaws.com)しか動作しません。httpsだと動作しないので注意
以上ですーーー!
.htaccessはS3では使えないみたいなので、上記の方法でリダイレクトするしかなさそうです。
記載方法はシンプルなのですが、タイポなどでsyntax errorがあってもチェック機能がない(間違いがあっても保存できてしまう)ので、注意です。
今後、保存前にチェックしてくれる機能が実装されて欲しいなー、、、
おやすみなさいぃぃぃ