Xserverが今なら最大50%OFF! 2022年11月25日(金)12:00まで

CNAMEレコードはどんな時に使う?別サーバーにリダイレクトできる?

この記事は約6分で読めます。
本文は約3470文字です

ドメイン変更やサーバー移転でよく使われる301リダイレクトは、.htaccessを使うのが一般的だと思います。

DNSレコードの中にCNAMEレコードというものがあり、wwwサブドメインを定義しているのをよく見かけます。

このようなことから、CNAMEレコードはwwwサブドメインをリダイレクトしていると感じる人が多いかもしれません。

この記事では、CNAMEレコードはリダイレクトの代わりに使えるのか?についてまとめてみたいと思います。

CNAMEレコードとは何か?

正規名(CNAME)レコードは DNS レコードの一種で、エイリアス名を実際の正規ドメイン名にマッピングします。
CNAME レコードは通常、www や mail などのサブドメインを、そのサブドメインのコンテンツをホストするドメインにマッピングするために使用します。
たとえば CNAME レコードを使用して、ウェブアドレス www.example.com をドメイン example.com の実際のウェブサイトにマッピングできます。

https://support.google.com/a/answer/112037?hl=ja

CNAMEの一般的な使い方は、サブドメインに対して利用されます。

また、CNAMEレコードのよくある使い方として、レンタルECなどで独自ドメインを導入するときに、wwwありのアドレスをレンタルECのサーバーにマッピングする際に使われる事例があります。

マッピングというのは、URLを変更せずにマッピング先のサイトの内容を表示することを言います。

CNAMEレコードの指定方法

CNAMEレコードは、マッピング先としてIPアドレスを指定することができません。

必ずホスト名にする必要があります。

また、CNAMEレコードは、サブドメイン無しのホストに対して指定することはできません。

必ず、サブドメインに対してCNAMEを定義する必要があります。

例)ドメイン名:abc.comの場合

www.abc.comを

で、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レコードは、.htaccessのリダイレクトの代わりには使えません。

CNAMEレコードは、アクセスされた時にドメインを書き換えないからです。

例えば、www.hogehoge.comが、CNAMEでhogehoge.comにポイントされていても、表示はwwwありのままです。

同じようにして、CNAMEを使って、他のサイトへ接続させることもできますが、ドメインは変更されません。

つまり、CNAMEは、サイトを飛ばすことはできるけど、URLは変更されない、という特徴があります。

ですので、レンタルECなどのサーバーにCNAMEで接続すると、URLは独自ドメインに置き換わり、表示内容はCNAMEの接続先になります。

CNAMEレコードがリダイレクトされるケース

CNAMEレコードを指定してリダイレクトされる場合もあります。

BASEやShopifyなどのレンタルECやWiXやJimdoなどのCMSで独自ドメインを適用する場合、CNAMEレコードを指定することで独自ドメインを割り当てます。

外部サービスに独自ドメインを割り当てるので、CNAMEレコードのポイント先は別のドメインのサーバーになります。

通常、相手側が特別な処置をしていない場合、通常のCNAMEレコードのようにドメインをマッピングして表示することはできません。

その場合は、CNAMEレコードで外部サイトを指定すると、そのサイトにリダイレクトされます。

CNAMEで自分が所有していない関係ないサイトをドメインマッピングできてしまうと、おかしなことが起こることは予想できますよね。

例えば、amazonのサイトを自分のドメインで公開することができてしまいます。でも実際には、それはできません。CNAMEレコードにそのように定義したとしても、リダイレクトされるだけで、URLは書き換わってしまいます。

CNAMEでサブドメインを別サーバーに接続できる?

あるサブドメインだけ別サーバーでホストしたい時に、CNAMEレコードを使えるのでは?と思うかもしれません。

CNAMEはIPアドレスを指定できませんので、サブドメインだけ別サーバーにするのには使えません。

サブドメインだけ別サーバーでホストしたい場合は、Aレコードを使って別サーバーのIPアドレスを割り当てることで実現できます。

まとめ

CNAMEレコードは、URLを書き換えないと覚えておくと、リダイレクトに使えないことがわかると思います。

つまり、新ドメインと旧ドメインでどちらも同じサイトを表示することはできるが、ドメインを正規化することはできません。

ドメインを正規化しなくていい用途であれば、CNAMEは便利に使うことができます。

参考なったらシェアお願いします!

この記事を書いた人

サーバーソムリエのアバター サーバーソムリエ レンタルサーバー鑑定士

国内のあらゆるレンタルサーバーを使用、管理した経験があります。サーバー選びからWordpressを使ったサイト運営まで丸っとお任せください。あなた様のご希望にそった本当に使える最適なサーバーをご紹介します。

コメントを閉じる

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

この記事の内容