WordPressのパーマリンクカテゴリ変更を.htaccessで301リダイレクトさせる方法!

WordPressのパーマリンクを途中で変更したくなってウズウズしている方はいませんか?

でもURLが変わるとせっかくもらった「いいね!」などのソーシャル系の値も0になっちゃうし、前のURLからのリダイレクト処理も大変そうだな…などと思っていませんか?

気持ちは大いに分かります。
私もこのブログのパーマリンクを変更しようかどうか悩みに悩み、ロシア女子フィギュアのリプニツカヤ選手のメディア嫌いは逆に清々しいな、私もあれくらい周りを気にせず世の中を歩んでいきたいなと思ったほどです。

そもそもなぜ今回私がこのブログのパーマリンクを変更しようと思ったかというと、理由はたった一つ。

GREEN_NO20140125500
「パーマリンクにカテゴリ入れてたら気軽にカテゴリ変更できないじゃん!」

まさにこれでした。
カテゴリ変更したかったのです。

私のもともとのパーマリンク設定は下記のようにカテゴリとポストIDを入れたものでした。

パーマリンク設定_‹_shuffleee_blog_—_WordPress-1

最初にブログを始めた時に何も考えずにどこかのサイトでこのパーマリンクが良いみたいなことが書いてありその通りにしました。
もちろんカテゴリが途中で変わらない、という前提であれば良いパーマリンクかも知れませんが、世の中に絶対はありません。
途中でカテゴリの構成を変えたいと思ってもこのパーマリンクだとどうしてもURLの変更が出てきてしまいます。

幸いなことに私のブログはまだそこまで「いいね!」などのソーシャル系の値は少ないので、今回下記のようにカテゴリを入れずにポストIDのみを使用するパーマリンクに変更をしようと決意致しました。

パーマリンク設定_‹_shuffleee_blog_—_WordPress-2

 

パーマリンク変更の問題点

パーマリンク変更で最大の問題となるのが、古いURLからのリダイレクト(301)処理
URLだけ変えて何もしないと古いURLでリンクが貼られている場合は404が出てしまいますし、SEO的にもまたゼロから始めなくてはいけなくなります
嬉しいことに古いURLからリダイレクト(301)を設定していれば、Googleも昔のページランクなどをそのまま新しいURLに引き継いでくれますので、URL変更の際は必ずリダイレクト(301)をするのが鉄則です。

それを行う為にプラグインや.htaccessなど色々試した結果を書いていきたいと思います。

プログラミングやWordPressを習得するのに一番近道な方法とは?


Redirectionプラグインを検討

「WordPress リダイレクト」などで検索すると一番良く出てくるのがこのRedirectionプラグインを使ったらどうかという情報です。

しかし調べていくと、このプラグインはページ毎にリダイレクト先を設定するようで、今回みたいに全ページをカテゴリごと一気に変えるようなリダイレクトには向いていないと判断しました。

リディレクション_‹_shuffleee_blog_—_WordPress

※ 後から気づいたことですが、正規表現も使えるようなので正規表現が得意な方はこちらのプラグインでも一気にリダイレクトは可能です。

 

Permalink Redirectプラグインを試してみる

次に情報が多かったのがPermalink Redirectプラグインです。
このプラグインは名前の通りパーマリンクを変更する際のリダイレクトを簡単設定で行ってくれるまさに今回のようなケースにピッタリのプラグインだと思いました。

設定はこのようにしました。
Permalink_Redirect_Manager_‹_shuffleee_blog_—_WordPress-12
非常に分かりやすいですよね。

しかし、設定後ちゃんとリダイレクト出来ているか確認したところ…

とポストIDが二重で出てしまうという事態が発生しました。

もちろんhttp://blog.shuffleee.com/1910/の方でも画面が表示されるので、ひとつのページに二つのURLがあるというちょっと不思議な状態になりました。

解決策がよく分からなかったので、このプラグインも諦めることにしました。

 

.htaccessでリダイレクトすることに決定

プラグインなどで楽をしようとせず、最初から素直に.htaccessでやれば良かったかもです。

どのように設定したか書いていきます。

■ 「/%category%/%post_id%/」から「/%post_id%/」にリダイレクト
[code]
RedirectMatch 301 ^/sys/([0-9]+)/$ http://blog.shuffleee.com/$1/
RedirectMatch 301 ^/bootstrap/([0-9]+)/$ http://blog.shuffleee.com/$1/
RedirectMatch 301 ^/wordpress/([0-9]+)/$ http://blog.shuffleee.com/$1/


# 解説
# RedirectMatch 301 ^/カテゴリスラッグ/変数1(数字の正規表現)/$ http://blog.shuffleee.com/変数1
[/code]

「http://blog.shuffleee.com」の箇所は使用するサイトのものに変更してくださいね。
リダイレクト前のURL指定部分にカテゴリを直接書いて、ポストIDのところは数字の正規表現で変数を作り、リダイレクト後の指定URLでカテゴリを抜かしたURLに設定。

ちゃんと301リダイレクトされるか確認。

確認にはこちらのリダイレクト検証ツールを使うと楽です。

これに旧URLの「http://blog.shuffleee.com/sys/1863/」などを入れて検索。

すると…

リダイレクト検証結果___SEO_検索エンジン最適化-7

OZPA_sutusugataiine500
「ばっちりOK!」

これでパーマリンク変更後の301リダイレクトが達成出来ました。
しかしWordPressの.htaccessを変更するときの注意点があります。

 

WordPressの.htaccessを変更する時の注意点

_htaccess-4

WordPressは様々な場面で.htaccessの書き換え処理を行っています。
この際「# END WordPress」の上側に今回のリダイレクト処理やオリジナルの設定を書いてしまうと、何かのタイミングで.htaccessがWordPressによって上書きされてしまい、せっかくの処理が消えて無くなってしまいます。

.htaccessを直接書き換える場合は注意しましょう。

※ 私はこれを知らなかったので一回消えてしまいました…

 

まとめ

パーマリンクの変更はデメリットもありますが、ずっと「カテゴリ変えたいな…」と悩んでいた気持ちがすっと楽になり、サイトに柔軟性が持てたという点で非常に満足しています。
もしこれからWordPressでサイト始めるなどと考えている方は最初のパーマリンク設定に気を使った方が良いかと思います。

 

参考サイト

いつもありがとうございます。
.htaccessの変数部分がよく分からなかったので、非常に参考になりました!

もし良かったらフォローとか購読して頂けると嬉しいです!╭( ・ㅂ・)و ̑̑ グッ !

follow us in feedly

Comments: 1

コメントを送る

メールアドレスが公開されることはありません。

CAPTCHA