LoginSignup
4
2

More than 3 years have passed since last update.

s3でURLリダイレクトするときの設定まとめ

Posted at

設定方法

  1. s3をホスティングしたいドメイン名で作成する
  2. Route53でs3エイリアスレコードを作成し、s3のドメイン名と紐付ける
  3. s3のパブリックアクセスを許可してインターネット上に公開する
  4. プロパティ-静的ウェブサイトホスティングを有効にして、リダイレクトルールも設定する
  5. ブラウザやcurlでアクセスして動作をみてみる

ホスティングの設定

  • インデックスドキュメント、エラードキュメントは指定するが、ファイル自体はなくても大丈夫
  • s3のみの場合、httpでしかアクセスできないため、httpsも利用したい場合はCloudFrontを利用する必要がある image.png

リダイレクトルール

メモ

  • ホストする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処理と同じ感じ
  • ReplaceKeyWithReplaceKeyPrefixWithの設定に違いがあることにたどり着くまで半日かかりました、、、

各種設定値

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になる
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "vamdemicsystem.black",
            "Protocol": "https",
            "ReplaceKeyWith": "blog-and-news/"
        }
    }
]

複数のルールを書くとき

[
    {
        "Condition": {
            "KeyPrefixEquals": "test/"
        },
        "Redirect": {
            "HostName": "vamdemicsystem.black",
            "Protocol": "https",
            "ReplaceKeyWith": "blog-and-news/"
        }
    },
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "vamdemicsystem.black",
            "Protocol": "https",
            "ReplaceKeyWith": "blog-and-news/"
        }
    }
]
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2