この記事は約4分で読めます。
本文は約2269文字です
CNAMEレコードはどんな時に使う?別サーバーにリダイレクトできる?
ドメイン変更やサーバー移転でよく使われる301リダイレクトは、.htaccessを使うのが一般的だと思います。
DNSレコードの中にCNAMEレコードというものがあり、wwwサブドメインを定義しているのをよく見かけます。
このようなことから、CNAMEレコードはwwwサブドメインをリダイレクトしていると感じる人が多いかもしれません。
この記事では、CNAMEレコードはリダイレクトの代わりに使えるのか?についてまとめてみたいと思います。
CNAMEレコードとは何か?
正規名(CNAME)レコードは DNS レコードの一種で、エイリアス名を実際の正規ドメイン名にマッピングします。
https://support.google.com/a/answer/112037?hl=ja
CNAME レコードは通常、www や mail などのサブドメインを、そのサブドメインのコンテンツをホストするドメインにマッピングするために使用します。
たとえば CNAME レコードを使用して、ウェブアドレス www.example.com をドメイン example.com の実際のウェブサイトにマッピングできます。
CNAMEの一般的な使い方は、サブドメインに対して利用されます。
また、CNAMEレコードのよくある使い方として、レンタルECなどで独自ドメインを導入するときに、wwwありのアドレスをレンタルECのサーバーにマッピングする際に使われる事例があります。
CNAMEレコードの指定方法
CNAMEレコードは、マッピング先としてIPアドレスを指定することができません。
必ずホスト名にする必要があります。
また、CNAMEレコードは、サブドメイン無しのホストに対して指定することはできません。
必ず、サブドメインに対してCNAMEを定義する必要があります。
例)ドメイン名:abc.comの場合
www.abc.comをCNAMEレコードで、www.example.comにマッピングする
【設定可能】
ホスト名:www
VALUE:www.example.com
⇒www.abc.comのDNSレコードを名前解決しようとした場合、www.example.comのレコードが参照されます。
※www.example.comのレコードはexample.com側で設定されている必要があります。
※CNAMEレコードはURLの転送とは異なります。Webサイトとしてアクセスした場合、
サーバーへのリクエストはwww.abc.comのホスト名で行われるため、
www.example.comのIPアドレスのサーバー上にwww.abc.comのWebサイトが存在しない場合はエラーとなります。
CNAMEで全てのサブドメインをマッピングすることは可能か?
CNAMEレコードでサブドメインをひとつづつ定義していくのは手間です。
全てのサブドメインを対象にCNAMEレコードを一回で定義する方法はあるのでしょうか?
あります。
サブドメインを”*”で指定することで、全てのサブドメインを指定することができます。
CNAMEレコードでリダイレクトは可能なのか?
CNAMEレコードは、アクセスされた時にドメインを書き換えないからです。
例えば、www.hogehoge.comが、CNAMEでhogehoge.comにポイントされていても、表示はwwwありのままです。
同じようにして、CNAMEを使って、他のサイトへ接続させることもできますが、ドメインは変更されません。
ですので、レンタルECなどのサーバーにCNAMEで接続すると、URLは独自ドメインに置き換わり、表示内容はCNAMEの接続先になります。
CNAMEレコードがリダイレクトされるケース
CNAMEレコードを指定してリダイレクトされる場合もあります。
BASEやShopifyなどのレンタルECやWiXやJimdoなどのCMSで独自ドメインを適用する場合、CNAMEレコードを指定することで独自ドメインを割り当てます。
外部サービスに独自ドメインを割り当てるので、CNAMEレコードのポイント先は別のドメインのサーバーになります。
通常、相手側が特別な処置をしていない場合、通常のCNAMEレコードのようにドメインをマッピングして表示することはできません。
その場合は、CNAMEレコードで外部サイトを指定すると、そのサイトにリダイレクトされます。
まとめ
CNAMEレコードは、URLを書き換えないと覚えておくと、リダイレクトに使えないことがわかると思います。
つまり、新ドメインと旧ドメインでどちらも同じサイトを表示することはできるが、ドメインを正規化することはできません。
ドメインを正規化しなくていい用途であれば、CNAMEは便利に使うことができます。
コメント