Amazon S3 のリダイレクト設定

AWS

以前、このブログは WordPress のログインページに大量の不正アクセスがあることが分かり、WordPress をローカル環境に移して静的サイトジェネレーターで生成したファイルを Amazon S3 にアップロードし、静的サイトとして公開するようになりました。

静的サイトにすると、投稿するためにローカル環境を起動、ログイン、投稿、静的サイトジェネレーターでファイル生成、Amazon S3 にアップロード、Amazon CloudFront のキャッシュ削除、反映を確認する等とても手順が多く更新がめんどうになってしまいました。

プライベートでもいろいろあり、いつの間にかローカル環境が壊れて起動すらできなくなり、今回バックアップから復旧すると同時に静的サイトを辞めて動的サイトに戻しました。

サーバー環境は以前作成した かぶめも を間借りしてドメインもサブドメイン( blog.fire-sign.info )に移行します。
どちらに統合するか迷いましたが かぶめも の利用が意外に多いのでこちらに寄せることにしました。
PHPのバージョンは 7.3 に、WordPress は 5.2.4 (現最新)になりました。

Amazon S3 のリダイレクトルール

今回は Amazon S3 で行ったリダイレクトの設定内容を公開します。
Amazon S3 のバケットのプロパティを開き、 Static website hosting のリダイレクトルールに下記のように設定します。

<RoutingRules>
  <RoutingRule>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>blog.fire-sign.info</HostName>
    </Redirect>
  </RoutingRule>
</RoutingRules>

RoutingRules の中に RoutingRule を定義します。(複数可、今回は1つだけ)
RoutingRule の中に Condition と Redirect を定義し、Condition で定義した条件に一致した場合に Redirect で定義した先へリダイレクトが行われます。

上記の設定は Condition を省略しているので全てのアクセスが Redirect で定義した先( blog.fire-sign.info )へ301リダイレクトされます。

各タグの詳細は下記で確認できます。https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/how-to-page-redirect.html

301リダイレクトが行われているか確認

curl でリダイレクト先のURLやコードが 301 なのかが確認できます。

curl -I https://little-braver.com/category/aws/
HTTP/1.1 301 Moved Permanently
Date: Sat, 19 Oct 2019 12:13:11 GMT
Content-Length: 0
Connection: keep-alive
Set-Cookie: __cfduid=dbb0673ffbb4c8b2113e57be8d6fca90b1571465591; expires=Sun, 18-Oct-20 06:13:11 GMT; path=/; domain=.little-braver.com; HttpOnly
Location: https://blog.fire-sign.info/category/aws/
X-Cache: Miss from cloudfront
Via: 1.1 b2912c462b2f3621a395cbfc629da2e5.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: SIN52-C2
X-Amz-Cf-Id: mjxRQGoC4iKqCOpWBspaF5udTbyB7eFhdZFHp-NtSzouQUqC0uNSFw==
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 52809aca5abfc363-SIN

設定してもリダイレクトされないときは設定に誤りがあるか、Amazon CloudFront などのキャッシュの削除等が必要かもしれません。

コメント

タイトルとURLをコピーしました