読者です 読者をやめる 読者になる 読者になる

だるろぐ

明日できることは、今日しない。

はてなブログのドメインを daruyanagi.jp から blog.daruyanagi.jp へ引越しした

f:id:daruyanagi:20170325190700p:plain

あまり気付かれてない気がしますが(こっそりやったので!)、はてなブログのドメインをお引越ししました。はてなブログを独自ドメインにする話はよく見かけますが、独自ドメインで運用していたはてなブログを別のドメインへ移動させた例はあまりないかもしれないので、メモがてら残しておきます。

とはいえ、心配したようなトラブルもとくに起こりませんでした。1時間ちょっと はてなブログ がダウンしたのと、AdSense がちょっと減ったような気がする程度です。

以前の状態と解決すべき課題

以前は

  • daruyanagi.net:メインのブログ(WordPress)
  • daruyanagi.jp:はてなブログ

という運用をしていたのですが(こういうちょっと謎な構造になっていたのは、もっぱら歴史的な事情によります)、WordPress よりも はてなブログの方が管理が楽だったこともあり、いつしか daruyanagi.jp がメインに。持て余していた daruyanagi.net をポートフォリオサイト(というか自己紹介サイト)っぽい感じにして使っていたのですが、とある日、ドメインの延長手続きを失念してしまい、daruyanagi.net を失ってしまいました。

f:id:daruyanagi:20170326230159p:plain

現在は水素水を布教するサイトになっています。

そんなわけで、

  • daruyanagi.jp:はてなブログ
  • about.daruyanagi.jp:自己紹介サイト

というよくわからない構造になってしまい、ちょっと困っていました。できればこれを

  • blog.daruyanagi.jp:はてなブログ
  • daruyanagi.jp:自己紹介サイト

という感じに整理したかった。あと、トップドメインで はてなブログ を運用するのはあまりよくないので直したかった、というのもあります。

※はてなブログでは、サブドメインを使用しないexample.comでブログを運用すると、ドメイン名の仕組み上、トラブルの原因になることがあります。取得したドメインの前に、必ずサブドメイン(wwwやblogなど)を付加してください。

はてなブログを独自ドメインで利用する - はてなブログ ヘルプ

Twitter で煽られるのも悲しいですしね!


WebMatrix × ASP.NET Web Pages で自己紹介サイトを構築し、Azure へ配置する

というわけで、サイトのお引越し処理です。やらなければいけないのは以下の2つになります。

  1. はてなブログを daruyanagi.jp から blog.daruyanagi.jp へ移動
    1. 独自ドメインの割り当てを解除し、daruyanagi.hatenablog.com に戻す
    2. DNS設定を行う
    3. はてなブログに新しい独自ドメインを割り当てる
  2. 自己紹介サイトを daruyanagi.jp にする
    1. DNS設定を行う
    2. Azure のカスタムドメイン機能で daruyanagi.jp を割り当てる

うちは20年近くバリュードメインですので、そこで DNS の設定を書き換えます。

f:id:daruyanagi:20170326233254p:plain

これが反映されるのを待って、はてなブログ と Azure 側でもドメインの設定をしました。

はてなブログのドメイン移動は、反映までに少し時間がかかりましたが(1時間ちょい)、問題なく行えました。あまり期待していなかったんですが、はてなブックマークなどもちゃんと受け継がれたようです。さすが!*1

しかし、以前に外部からいただいた はてなブログ へのリンクが、移転に伴い 404 になってしまうのはあまりいただけません。というわけで、自己紹介サイトを拡張し、blog.daruyanagi.jp へリダイレクトを行うことにしました。幸い、自己紹介サイトは WebMatrix × ASP.NET Web Pages で作ってあったので、そんなに難しくはなさそう。

しかも幸運なことに、はてなブログ は記事を配信するディレクトリを一段深く掘ってあります(ドメイン直下ではない)。

※ディレクトリとして、はてなブログで使用しているaboutやarchiveなどを設定することはできません。

記事を配信するディレクトリを変更する - はてなブログ ヘルプ

というわけで、daruyanagi.jp/entrydaruyanagi.jp/archivedaruyanagi.jp/about へのリクエストをそのまま blog.daruyanagi.jp の各ディレクトリへリダイレクトすればよさそう。

f:id:daruyanagi:20170326232734p:plain

# ~/Entry.cs、 ~/Archive.cs、 ~/About.cs

@{
    var url = App.Blog + Request.Url.PathAndQuery;

    Response.RedirectPermanent(url);
}

App.Blog には、blog.daruyanagi.jp が格納されています*2HttpResponse.RedirectPermanent メソッド (System.Web) は 301 リダイレクトを行ってくれるらしいです。楽ちんですね! WebMatrix/ASP.NET Web Pages を使ってる人は少ないと思いますが、他の言語やフレームワーク、サーバーでも似たような感じの運用で対処できそうな気がします。

フィードもリダイレクトしようかなと思いましたが、それはなんとなくやめました。ごめんなさい。購読してくれてる方は、URL の登録をやり直してください。*3

Azure のカスタムドメイン割り当ては、はてなブログの独自ドメイン設定よりも早く、30分弱で反映されました。うまくいってるみたいでよかったです。Google はすぐに古い URL を参照しなくなりましたが(RedirectPermanent のおかげでしょうか?)、まだ古い URL からくるトラフィックもあるみたいで、残念な思いをさせなくてよかったと思います(ブログを読んでがっかりするのは防げませんが!)。

f:id:daruyanagi:20170326233705p:plain

丸一日様子を見てから、daruyanagi.jp -> Azure も cname ではなく a レコードで引くようにしてみました。これで今回のミッションは完了! お疲れさまでした。WebMatrix は今年いっぱいでサポート終了ですけど、最後まで役に立ってくれました。僕のようなアマチュアにはピッタリなツールだったのですが、やっぱり Visual Studio Code などと比べてエディターが弱いので仕方がないかな。ともあれ、ありがとうと言いたいです。

追記

*1:スターはダメなんだっけ? よくわかんないけどいいや

*2:開発中は daruyanagi.jp にしていろいろテストしていました

*3:daruyanagi.jp/feed を登録している場合は、はてなブログと僕のもう一つのブログ(コラムのみ)の新着情報の両方を受け取れます