商売力開発ブログ

非エンジニアがWebサービスの開発、運営によって商売力をつける記録、その他の雑記

【スポンサーリンク】

ドメインの変更時に、AWSのS3を利用して旧ドメインから301リダイレクトさせる方法

スポンサーリンク

今回は独自ドメインで運用していたウェブサイトのドメイン名を変更した場合の対応を紹介します。
今回はサブドメイン名を変更した状態を想定し、変更前のドメイン名を「旧ドメイン名」としその値を「old.domain.com」、変更後のドメイン名を「新ドメイン名」としその値を「new.domain.com」と記載していきます。

ドメイン名を変更するとどんな影響があるか

これまで運用していたウェブサイトについてドメイン名を変更した場合の対応について考えます。運用サイトのドメイン名の変更作業自体は済んでいるものとします。

まずドメイン名を変更することで一番大きな影響は、旧ドメイン名でリンクした内容が問題になります。ユーザが旧ドメイン名でお気に入りに追加していたり、コンテンツの中に旧ドメイン名で設定されたリンクについて対応が必要になります。対応しないと旧ドメイン名に接続しに行きページが存在しませんという状態になってしまいます。
そしてグーグルの検索結果にも旧ドメイン名で表示されます。
今回はこの部分の対応について考えていきます。

法人などで変更対象のウェブサイトが名刺や会社案内などの印刷物に記載されている場合、刷り直しなどが必要になってくるものもあるでしょう。

対応方針

ドメイン名を変更した場合、旧ドメイン名から新ドメイン名に301リダイレクトさせるのが一般的な対応となります。301リダイレクトについては以下参照して下さい。 

www.prj-alpha.biz

旧ドメインにアクセスしてきたリクエストを新ドメインに301リダイレクトするには、Apacheなどのウェブサーバの設定の変更で対応することができますが、サーバの設定を変更できない場合があります。例えばこのはてなブログなどです。
このようなときに簡単な設定で301リダイレクトする方法を検討してみたいと思います。ドメインを取得する際に利用したドメイン登録サービスでリダイレクトするサービスを提供しているものがあります。ただしそのリダイレクトが301リダイレクトか確認する必要があります。例えばお名前ドットコムではURL転送Plusというサービスがありますが、これは302リダイレクトになっているようです。
AWSの Amazon S3(以下、S3)でリダイレクトができるようなので、今回はそれを利用することにします。

AWSのS3による301リダイレクト

S3はAWSのクラウドストレージサービスですが、静的ウェブホスティングの機能によりストレージにアップロードしたファイルをウェブサーバのように静的コンテンツとしてHTTP でやり取りすることができます。更にこの機能の中にはリダイレクトする機能があります。

S3のリダイレクト機能にはいくつかの方法がありますが、今回は一番簡単なバケットによるリダイレクト設定を行います。バケットの設定のみで、バケットにはファイルは不要です。
旧ドメイン名でS3の静的ウェブホスティングを行い、そこにきたリクエストを新ドメイン名にリダイレクトするように設定します。

S3を設定する

まずはバケットを作成します。名称は旧ドメイン名で作成します。これは独自ドメインでの静的ウェブホスティングするための制約です。

今回は「old.domain.com」となります。その他の設定はいったんなしで作成します。作成が完了した時点で、エンドポイントが確認できます。プロパティのタブを選択して、「Static website hosting」をクリックするとエンドポイントが表示されます。

Route53以外のドメイン登録サービスを利用している場合、独自ドメインのDNSにCNAMEレコードを作成して、このエンドポイントを登録することで独自ドメインでS3バケットが利用できます。

続いて、アクセス権限を設定します。アクセス権限のタブのベケットポリシーをクリックして以下のポリシーを設定して、パブリックユーザにGetObjectの権限を付与してアクセスできるようにします。Resourceの部分は旧ドメイン名となります。

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::old.domain.com/*"]
    }
  ]
}

この状態で保存するとパブリックアクセス権が付与されたことが明示されます。

最後にリダイレクトの設定を行います。プロパティのタブを選択して、「Static website hosting」をクリックして「リクエストをリダイレクトする」を選択し、リダイレクト先に新ドメイン名を入力します。http/httpsを指定したい場合はプロトコルに設定します。

これで旧ドメインへのリクエストはバケットの設定により、全て新ドメインのホストにリダイレクトされることになります。このリダイレクトの設定はサブディレクトリも含まれます。

その他のリダイレクト設定は公式ページを参照して下さい。

docs.aws.amazon.com

301リダイレクトの設定ができているか確認する

設定ができた後に問題ないか確認しましょう。一番簡単なのはブラウザで旧ドメイン名をURLに入力して新ドメイン名に変更されるか確認する方法です。

この他に以下のサイトでは301リダイレクトされているかステータスコードが確認することができます。

HTTP Header Response Status Codes Check Tool

URLに旧ドメイン名を入力して、Checkボタンを押してしばらく待った後に以下のように301と結果が出ていれば問題ありません。

新ドメイン名 - 301 Moved Permanently
旧ドメイン名 - 200 OK

サブディレクトリが問題ないかもこちらで確認することができます。

ドメイン名に変更に関連して、その他にやること

ドメイン名に変更に関連してURLを保持しているシステムなどの設定も変更が必要になります。SEO関連のツールではグーグルの Google Analytics 、 Search Console はきっちり変更しましょう。特に Search Console はグーグルの検索結果のインデックスに影響しますので必ず対応しましょう。

www.prj-alpha.biz

まとめ

今回はAWSのS3を利用しての301リダイレクトの紹介でした。

以上

【関連するリンク】

www.prj-alpha.biz

www.prj-alpha.biz

 

【スポンサーリンク】