kur.jp

バイオリンと自転車をこよなく愛するkurのチラシの裏。たまには技術的なことを書いたりするかも知れません。

Wordpressからはてなブログへの引っ越しに伴うURL変更と301リダイレクト

Wordpressからはてなブログに引っ越ししました。今回はその手順について覚書。と言っても基本的には、下記のサイトだとかを参考にしてもらえれば概要はわかるんじゃないかなと思うので、下記記事にない、ブログ移転に伴うURL変更への対策について。

www.junpeihazama.com

今回行った作業は下記の通り。

  1. Wordpressで記事をXMLとしてエクスポートする
  2. はてなブログ側でそのXMLをインポートする
  3. ドメインの設定を行う
  4. URLが変わってしまったので、リダイレクトの設定を行う

ここで、ドメインの設定を行うためには、はてなブログのProにする必要がある。Proの料金は1ヶ月約1000円、2年払いだと月600円になる。そこまで高くは無いのだけれど、このためだけにProにすべきかは悩むところである。しかしながら、お金を払ってしまえば頑張って更新するような気もするので、これぐらいなら良いかな?って思ってしまったのも事実。

また、記事中の画像に関しては、はてなフォトライフにアップロードし直す方法も紹介されていたりするのだけれど、私は元々のサーバから画像を全部引っ張ってくることにした。いくつか方法が紹介されていたのだけれど、何故か私の場合うまく行かなかったのです。時間があったら将来的に対応するかも知れないけれど。

さて、問題は最後のリダイレクト設定。今回、はてなブログに引っ越しを行うにあたり、URLが変更になっており、このままだと古いURLにアクセスした人には何も表示されなくなってしまうし、何よりグーグルなどで検索してきてくれた人に申し訳ない。そこで、古いURLにアクセスが有った時に、自動的に新しいURLにリダイレクトさせたい。そしてこのリダイレクトには大きく2つの前提条件がある。箇条書きすると下記の通り。

  • ブログのURLがhttp://kur.jpからhttp://blog.kur.jpに変更になっている。
  • ブログ以外(例えば私の自己紹介とか、ポートフォリオなどの固定ページや、画像など)のコンテンツは、http://kur.jpに残す

上記を実現するために、サーバーの.htaccessに下記の内容を書いた。

#php_flag mbstring.encoding_translation off
#php_value default_charset "UTF-8"

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^20.* http://blog.kur.jp/entry%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

今回私が追加したのは、下記の部分。

RewriteRule ^20.* http://blog.kur.jp/entry%{REQUEST_URI} [R=301,L]

私の場合、wordpressのブログコンテンツは、URLに年月日が必ず含まれており、(ドメイン名)/2015/10/03/のようになっていたので、最初の2文字が20の場合はブログ記事へのアクセスだと判断してはてなブログに301リダイレクトすることにした。なお、wordpressは.htaccessを気軽に書き換えに来るので、パーミッションの変更を行って、wordpressから.htaccessを書き換えられないようにしている。

このように301リダイレクトしておくと、Googleのクローラなどはコンテンツが移動されたとみなしてインデックスを修正してくれるらしい。事実、いくつかの記事タイトルでGoogleで検索してみると、移転直後は元のURLがインデックスされていたものが現在でははてなブログのURLが表示されている。問題は、引っ越ししたものの、ほんとに更新するのか?と言うところであるのだけれど。