雀巽の日記帳

雀巽が綴る日常の記録

FC2からはてなへ引越しする方法

ブログ移行最終章

本日、本当の意味でのブログ移行が完了しました。 以前、ブログを移行しましたというエントリに「完全移行しました」と書いていたのですが、1つだけやり残していたことがありました。

それは旧ブログから新ブログへのリダイレクトです。

本エントリでは、FC2からはてなブログへ自動転送する方法を紹介します。 記事および画像の移行方法についてはこちらをご覧ください。 記事をはてなブログへ、画像をはてなフォトライフへ移行する方法をまとめております。

参考サイト

以下のサイトを参考にしました。ありがとうございます。

転送方法

本来は.htaccessというファイルを使い、301リダイレクトで転送するのが正攻法らしいですが、FC2ブログの無料会員では使用できません。

301リダイレクトが使えない場合は、meta refreshrel="canonical"を利用して転送すると良いそうです。

meta refresh とは

meta refreshとは、HTML文書のheadタグ内に記述できるリダイレクト設定です。ネットサーフィンをしていて「n秒後、自動的にジャンプします」という表記に出会ったことがあれば、たぶんそれです。

rel="canonical" とは

canonicalってなんやねんって話ですよね。 Weblio先生に聞いたところ、「正典の」という意味でした。 要するに、正規のサイトはこちらですよ、ということを表現してくれるそうです。

まとめると、meta refreshで自動転送、rel="canonical"Google先生などのクローラへ移転宣言、ということになります。

FC2ブログへ設定

管理ページのテンプレートの設定から上記のタグを埋め込みます。 headタグの最下層に下記のように埋め込みました。

<head>
  —— 省略 ——
  <!-- 移転 -->
  <!--permanent_area-->
    <!--topentry-->
      <link rel="canonical" href="http://necojackarc.hatenablog.com/entry/<%topentry_year>/<%topentry_month>/<%topentry_day>/<%topentry_hour><%topentry_minute><%topentry_second>" />
      <meta <!--index_area--><!--/index_area--> http-equiv="refresh" content="5;URL=http://necojackarc.hatenablog.com/entry/<%topentry_year>/<%topentry_month>/<%topentry_day>/<%topentry_hour><%topentry_minute><%topentry_second>" />
    <!--/topentry-->
  <!--/permanent_area-->
 
  <!--not_permanent_area-->
    <link rel="canonical" href="http://necojackarc.hatenablog.com/"/>
    <meta <!--index_area--><!--/index_area--> http-equiv="refresh" content="5;URL=http://necojackarc.hatenablog.com/" />
  <!--/not_permanent_area-->
</head>

<!--permanent_area-->タグで囲まれているところが、各エントリ個別の設定で、<!--not_permanent_area-->で囲まれているところがそれ以外のトップページなどの設定となります。FC2の独自記法な気がします。

<!--index_area-->タグはFC2でmeta refreshを行うためのおまじないみたいなもんです。詳細は調べてません。

転送までの時間については、5秒で設定しておきました。 0秒に設定するとスパム扱いされる危険性があるそうです。

URLについては、はてなブログでの各エントリのURLを/entry/yyyy/MM/dd/HHmmssとなるように設定していたので、 <%topentry_year>などの変数を使って上記のように記述しております。

<%hoge>FC2ブログのテンプレート用変数です。 詳細は公式ヘルプを参照してください。

移転連絡を埋め込み

ここまででリダイレクトの設定は終わりましたが、このままだと突然5秒後にリダイレクトしてしまい、非常に不親切です。

そのため、<div class="entry_body">内の<%topentry_body>の直前に、以下の通り記述しました。

<div class="entry_body">
  <i><h3>当ブログは『<a href="http://necojackarc.hatenablog.com/entry/<%topentry_year>/<%topentry_month>/<%topentry_day>/<%topentry_hour><%topentry_minute><%topentry_second>"><u>はてなブログ</u><a/>』へ移転しました。</h3>
  <h3><font color="Red">5秒後、自動的に転送いたします。</font></h3>
  自動的に転送されない場合、<a href="http://necojackarc.hatenablog.com/entry/<%topentry_year>/<%topentry_month>/<%topentry_day>/<%topentry_hour><%topentry_minute><%topentry_second>"><u>こちら</u><a/>をクリックしてください。</i>
  <hr><br>
<%topentry_body>

これで全てのエントリのタイトルと本文の間に、「自動的に転送いたします」というメッセージを挿入することができました。 タイポグラフィについてはセンスが問われますね……!汗

これにて転送設定完了!移行完了!

追記: 2015/1/20

即時(0秒)でのmeta refreshによる転送は、301リダイレクトと同等に扱われるという情報がこちらにあったので、採用してみることにしました。

本当に301リダイレクト相当として扱われるのか、はたまたスパム認定されるのかは、神(Google?)のみぞ知る……。