設定方法
- s3をホスティングしたいドメイン名で作成する
- Route53でs3エイリアスレコードを作成し、s3のドメイン名と紐付ける
- s3のパブリックアクセスを許可してインターネット上に公開する
- プロパティ-静的ウェブサイトホスティングを有効にして、リダイレクトルールも設定する
- ブラウザやcurlでアクセスして動作をみてみる
ホスティングの設定
- インデックスドキュメント、エラードキュメントは指定するが、ファイル自体はなくても大丈夫
- s3のみの場合、httpでしかアクセスできないため、httpsも利用したい場合はCloudFrontを利用する必要がある
リダイレクトルール
メモ
- ホストするURLが
example.com
- https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/how-to-page-redirect.html
- 上記URLではXML形式で案内されているけど、いまはjsonで書かないといけないみたい
- 上のルールからConditionブロックをなめていき、ヒットしたらそのセクションのRedirectルールが発動
- ApacheのRedirect処理と同じ感じ
ReplaceKeyWith
とReplaceKeyPrefixWith
の設定に違いがあることにたどり着くまで半日かかりました、、、
各種設定値
Conditionブロック
- Condition
- ディレクトリ、ファイル、エラーコードを指定し、ヒットした場合にRedirect内のルールが処理される
- KeyPrefixEquals
/aaa
のようにリダイレクトしたいときのパス、ディレクトリを指定する
Redirectブロック
- Redirect
- Conditionとセットで設定
- HostName
- s3バケット内ではなくて、別のドメインへリダイレクトする場合に指定する
- Protocol
- リダイレクト後のプロトコルを指定する。 http or https
- ReplaceKeyWith
- 置き換えられるパス(クエリ)
- リクエストされたドメイン移行のクエリは破棄される
example.com/aaaaa
でリクエストが合った場合、https://vamdemicsystem.black/blog-and-news/
になる
- ReplaceKeyPrefixWith
- 置き換えられるパス(クエリ)
- リクエストされたドメイン移行のクエリは維持される
example.com/aaaaa
でリクエストが合った場合、https://vamdemicsystem.black/blog-and-news/aaaaa
になる
1 2 3 4 5 6 7 8 9 10 11 12 |
<span class="p">[</span> <span class="p">{</span> <span class="nl">"Condition"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"HttpErrorCodeReturnedEquals"</span><span class="p">:</span> <span class="s2">"404"</span> <span class="p">},</span> <span class="nl">"Redirect"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"HostName"</span><span class="p">:</span> <span class="s2">"vamdemicsystem.black"</span><span class="p">,</span> <span class="nl">"Protocol"</span><span class="p">:</span> <span class="s2">"https"</span><span class="p">,</span> <span class="nl">"ReplaceKeyWith"</span><span class="p">:</span> <span class="s2">"blog-and-news/"</span> <span class="p">}</span> <span class="p">}</span> <span class="p">]</span> |
複数のルールを書くとき
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<span class="p">[</span> <span class="p">{</span> <span class="nl">"Condition"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"KeyPrefixEquals"</span><span class="p">:</span> <span class="s2">"test/"</span> <span class="p">},</span> <span class="nl">"Redirect"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"HostName"</span><span class="p">:</span> <span class="s2">"vamdemicsystem.black"</span><span class="p">,</span> <span class="nl">"Protocol"</span><span class="p">:</span> <span class="s2">"https"</span><span class="p">,</span> <span class="nl">"ReplaceKeyWith"</span><span class="p">:</span> <span class="s2">"blog-and-news/"</span> <span class="p">}</span> <span class="p">},</span> <span class="p">{</span> <span class="nl">"Condition"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"HttpErrorCodeReturnedEquals"</span><span class="p">:</span> <span class="s2">"404"</span> <span class="p">},</span> <span class="nl">"Redirect"</span><span class="p">:</span> <span class="p">{</span> <span class="nl">"HostName"</span><span class="p">:</span> <span class="s2">"vamdemicsystem.black"</span><span class="p">,</span> <span class="nl">"Protocol"</span><span class="p">:</span> <span class="s2">"https"</span><span class="p">,</span> <span class="nl">"ReplaceKeyWith"</span><span class="p">:</span> <span class="s2">"blog-and-news/"</span> <span class="p">}</span> <span class="p">}</span> <span class="p">]</span> |