はてなブログに設定した独自ドメインを別のドメインに変更する方法
はてなブログProのドメインを設定した状態で,新たに違うドメインへ変更しようとした際に適切にリダイレクトする方法を解説します.
.tech
ドメインの利用料が値上げされたのでドメインを変更することにした
このブログは,はてなブログの有料サービスはてなブログProを利用して運営しています.はてなブログは独自ドメインを簡単に設定できます.このブログもお名前ドットコムで取得したwww.letstouch.tech
というドメインを利用していました.
先日,お名前ドットコムから.tech
ドメインの年間利用料を値上げする(3980円 -> 4980円)という告知があったことがきっかけで,ドメイン名を変更することにしました.
ドメインの価格:.comとか安くて無難
利用料を考えると.com
.org
.info
などの古参ドメインが比較的安いです.最近追加されているgLTDドメイン(.tech
とか.works
のようなやつ.詳しい解説は JPNICの資料とか見てください)は高め.
問題:はてなブログのドメイン変更手続きをしなければいけない
現状の整理
取得したドメイン
はてなブログProでの独自ドメイン設定方法
ドメインを取得したら,CNAMEレコードとしてhatenablog.com.
を指定し,はてな側で利用するドメインを指定するだけです.
はてなブログを独自ドメインで利用する - はてなブログ ヘルプ
このブログはお名前ドットコムで取得したletstouch.tech
というドメインを利用していたため,www.letstouch.tech
のCNAMEレコードをhatenablog.com.
としていました.
- お名前ドットコム(DNS)のCNAMEレコード:
www.letstouch.com(旧) -> hatenablog.com.
- はてなブログで設定する独自ドメインのURL:
www.letstouch.tech(旧)
このようにCNAMEレコードを設定すると,www.letsouch.tech
へのアクセスはhatenablog.com.
へのアクセスのエイリアスと解釈されるため,はてなブログに正常にアクセスできるというわけです.
サブ問題:新規ドメインだけを利用すると旧ドメインのアクセスが404エラーになる
はてな側の設定を新規ドメインのものにする必要があるので,次の設定が必要です.
- さくらインターネット(DNS)のCNAMEレコード:
www.yuk-and-duck.com(新) -> hatenablog.com.
- はてなブログで設定する独自ドメインのURL:
www.yuk-and-duck.com(新)
しかし,これだけでは問題があります.はてな側の設定をこのように変えてしまうと,旧URLから記事にアクセスすることができなくなってしまいます.はてな側でwww.letstouch.tech
の対応先の情報が消失するためです.
このようドメインを変更してしまうと,Google検索でヒットするのは旧URLのほうなのに,それを踏むと404エラー(そんなブログはないので表示できない)になってしまいます.新たにサイトを作ってそこにコンテンツをおひっこしした状態になるわけです.検索にひっかかりにくくなってしまいます.
やってみた:旧ドメインのCNAMEレコードに新ドメインを追加した
このため,この設定に加えてwww.letstouch.tech
へのアクセスをwww.yuk-and-duck.com
のアクセスとみなすようにする必要があります.そこで旧ドメインのCNAMEレコードを新ドメインにひも付けました.つまり以下の様な設定にしました.これは,間違った対応でした.
- お名前ドットコム(DNS)のCNAMEレコード:
www.letstouch.com(旧) -> www.yuk-and-dock.com(新)
- さくらインターネット(DNS)のCNAMEレコード:
www.yuk-and-duck.com(新) -> hatenablog.com.
- はてなブログで設定する独自ドメインのURL:
www.yuk-and-duck.com(新)
結果:404エラーが返るようになった
上述の設定で一晩放置した結果,アクセス件数は0件になりました.旧ドメインへのアクセスが正しくこのブログへのアクセスとみなされなくなっていました.
図:0時から12時までアクセスが不能になった.12時に後述の対応をした結果アクセス可能となった.
なぜアクセスできなかったのか
上記の設定の状態で新ドメインにアクセスすると,次の画面になりました.
はてなの404ページが表示されていることから,はてなドメインに正しくアクセスできていることがわかります.しかし僕のブログにはアクセスできていません.どうも,CNAMEレコードを上記のように設定しても,新ドメインからのアクセスではなく,旧ドメインからのアクセスとしてはてな側で扱われるようです.
内部の実装はわからないのですが,上述のようにCNAMEを設定した状態の旧ドメインにアクセスすると次のようになると考えると納得がいきます.
- 新ドメインのCNAMEレコードであるhatenablog.com.のIPにアクセスする
- はてなブログ側では旧ドメインからのアクセスのように見えるため,そのドメインと対応するサブドメインのデータを返そうとする
- ブログが存在しないので404となる
解決策:適当なサーバを経由してブログにリダイレクトさせた
DNSの設定をいじっても解決不能ということがわかったので,サーバで適切にリダイレクトするようにします.
お名前ドットコムのリダイレクトサービスURL転送Plusを使うとドメインへのアクセスをリダイレクトできるようですが,何故か設定に失敗しました.また,このサービスの転送は302で行われるようなのでGoogleの検索結果の順位がさがるため,よろしくないです.
301リダイレクトと302リダイレクトの違い | 海外SEO情報ブログ
そこで,旧ドメインのAレコードを適当なWebサーバに指定して,そのサーバから新ドメインにリダイレクトするようにしました.こうすると,旧ドメインへのアクセスは一度Webサーバを経由し,新ドメインにリダイレクトされ,新ドメインへのアクセスとしてはてなに認識されるので問題なくアクセスできるはずです.
必要なもの
- nginxを設定できるサーバ
僕はさくらのVPSでnginxを動かしていたので設定を数行加えただけです.
設定方法
- 新ドメインのAレコードにnginxを立てるサーバのIPアドレスを指定します
- サーバにnginxをいれて起動します
/etc/nginx/conf.d/default.conf
に次の設定を追加します.(ドメイン名はletstouch.tech
を旧ドメインに,yuk-and-duck.com
を新ドメインに各自変更してください)/etc/init.d/nginx restart
で再起動すれば設定完了です.
以上で旧ドメインへのアクセスも正しく新ドメインへリダイレクトされるようになりました.
- 作者: 久保達彦,道井俊介
- 出版社/メーカー: 技術評論社
- 発売日: 2016/01/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る