【.htaccess修正】livedoor blogからWordPressにリダイレクトする方法。(パーマリンク変更なし)

ブログ運営

こんにちは。てとです。

このブログは2018年1月に運営を開始しました。
ですが、実はこのブログを開始するずっと前から、色々なブログサービスでブログを書いていました。

もうこのWordpressを始めてから1年が経ちましたが、いまさらになって昔やっていたlivedoorブログを見つけてしまいました・・・(笑)
せっかくなのでこのWordPressのブログに、livedoorブログ時代に書いていた記事をインポートしてみました。

livedoorブログからWordpressの移行の肝となるリダイレクト設定ですが、一般的な方法では解決できない問題が出てきましたので、その解決方法を書いておきたいと思います。

スポンサーリンク
スポンサーリンク

なぜリダイレクト処理の設定が必要なのか

livedoorブログからWordpressに記事を移行した場合にやらなければいけないことのひとつとして、リダイレクト処理の設定があります。
要は、livedoorブログ内で書いた記事を全てWordPress側にインポートした後、livedoorブログ側で公開した記事にアクセスした場合はWordPress側の同じ記事に自動で転送してあげなければいけないのです。

livedoorブログ側で公開している記事と全く同じ内容の記事がWordPressにあり両方とも閲覧できる状態にある場合、どちらか一方は重複コンテンツ(パクリ記事)としてペナルティを受けてしまいます。
おそらく後から公開したWordPress側がペナルティを受けるでしょう。

正しくリダイレクト処理を行うことで、livedoorブログからWordPress側に引越をしたよ、だからパクリじゃなくてWordPressのほうが正解だよ、と教えてあげることができます。

一般的なlivedoorブログからWordPressへのリダイレクト設定

livedoorのブログ記事のURL形式は、以下のようになっています。

http://ドメイン名/archives/記事番号.html

livedoorブログには、リダイレクト設定というものはありません。
しかし、独自ドメイン設定の機能を用いて、似非リダイレクトを行うことが可能です。
具体的には、livedoorブログ管理画面>ブログ設定>ブログURL設定>ドメイン」の画面にて、「独自ドメインを使用する」を選択し、「PC/スマートフォン版」にWordPressのドメインを入力します。

ただし、これだと新しいドメインに転送されますが、URL形式はlivedoorブログ側のものを維持したままです。
つまり、livedoorブログ側からWordPressに渡すことができるリダイレクトは、下記となります。

(例)livedoorブログ側の記事番号が「24554500」の場合
http://tetrablog.net/archives/24554500.html

「livedoorブログ側でここまでしかできないなら仕方がないので、WordPress側を上記URL形式に合わせる」のが、一般的なlivedoorブログからWordPressへ移行する場合の手順となります。

具体的には、「WordPress管理画面>設定>パーマリンク設定」の画面にて、「カスタム構造」を選択し、「/archives/%postname%.html」を入力します。こううすることで、livedoorブログ側のURL形式とWordPress側のURL形式が完全に同じになるので、無事リダイレクトができるようになります。

ただし、WordPressで書いていた過去記事のURLも全て変わってしまう問題が

上記の方法は、作成したばかりで記事がひとつもないWordPressに、livedoorブログの記事をインポートする場合には、非常に有効です。
しかし、私のブログは開設してから1年が経ってしまっており、WordPress上にそこそこの量の記事をすでに書いてしまっています。
上記の方法でパーマリンクを変更した場合、これまでWordPressで書いてきた記事のURLが全てlivedoorブログ形式に変わってしまうのです。

記事数の少ないブログではありますが、Googleの検索結果に登録されている過去の記事たちのURLが変わってしまうのは、結構デメリットです。

WordPress側のパーマリンクを変更せずに済む方法を模索

ここで考え直しです。
条件を整理すると、下記を満たす方法があればいいのです。

1.WordPress側の過去記事は、URLを変更しない
2.livedoorブログのURL形式でアクセスされた場合のみ、WordPress側のURLにリダイレクトする

うーん・・・WordPressの機能やプラグインでなんとか実現できないか考えたのですが、やはり難しい。
色々考えたのですが、「.htaccess」を修正することでできないか、試してみることにしました。

「.htaccess」とは

誤解を恐れず端的に言えば、WordPressに来たアクセスのURLを確認して、正しいURLにリダイレクトする(振り分ける)ための設定ファイルです。
リダイレクト以外にも役割は色々あるのですが、今回はこのリダイレクト機能を使って解決します。

「.htaccess」に追記した内容と、解説

利用は自己責任でお願いします。
このあと記述内容も1行ずつ解説しますので、必ず理解した上で利用してください。

# livedoor to WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^archives(.*)$ $1 [R=301,L]
</IfModule>

1行目:Apache上で「mod_rewrite.c」が利用可能かを確認します。利用不可の場合は2行目から7行目までをスキップします。
2行目:これ以降の行で発生するリダイレクト処理を有効にします。
3行目:アクセスされたURLがディレクトリでないことを確認します。ディレクトリである場合は4行目はスキップします。
4行目:アクセスされたURLが「.html」で終わっている場合、この「.html」を削除したURLをリダイレクトします。
5行目:アクセスされたURLがディレクトリでないことを確認します。ディレクトリである場合は6行目はスキップします。
6行目:アクセスされたURLのドメイン直後に「archives」がある場合、この「archives」を削除したURLをリダイレクトします。

また、4行目と6行目に登場する「[R=301,L]」について説明します。
「R=301」は、これはWebサイトのコンテンツが移転したことを明示してリダイレクトします。この記述があると検索エンジンにもコンテンツが移転したことを教えることができ、リダイレクト後のページにSEO評価をそのまま引き継ぐことができます。
「L」は、一言で言うと「その行が実施された場合、その処理は再度行わない」というような意味です。ただ「L」は結構難しいので、余裕があれば一度ちゃんと調べて理解するのがよいかと思います。

まとめ

上記を追記した結果、無事正しいWordPressのURLにリダイレクトがされ、livedoorブログ時代の記事がこちらのブログで閲覧できるようになりました。

今私は26歳なのですが、livedoorブログで書いていたのは22〜23歳ごろ。
今見ると、恥ずかしくなってしまうぐらい稚拙な文章で今更こうやって他の人に見える状態にするのは恥ずかしさもあるのですが、過去の記事をなかったことにしてブログごと削除してしまうのは過去に頑張ってブログを書いていた自分を否定することになってしまうので、思い切って今の私と繋げることにしました。

今WordPressでブログを運営していて、そういえば昔livedoorブログやっていたなぁ・・・と思っている方。
この機会に今の自分と過去の自分をつなげてしまいませんか?

それでは!

コメント

タイトルとURLをコピーしました