WordPressのURLを変更する

WordPressのURLを変更する事にした。
ひと手間あったので備忘録も兼ねてメモをする。

WordPressのURLはデフォルトの場合、
パラメーターとして記事IDやページIDがURLに含まれる。

例えば記事IDが1770の記事であれば下記のようなURLになる。

http://516.jp/?p=1770

あまり、URLのうしろにp=なんとかみたいな
パラメーターが付くのが好きでない人はパーマリンク設定で変更をする。
私も変更しており、数字ベース(516.jp/archives/123)を使用していた。

その際、WordPressの管理画面からパーマリンク設定を変更すれば、
過去の記事もすべて数字ベースにURL書き換えが行われるので
特に困る事はなかった。

例えば、
516.jp/?p=1770
にアクセスすると
516.jp/archives/1770
に自動的にURL書き換えというかリダイレクトされるのである。

 

今回はこれまで使っていたURLの/archives/という部分が不要というか
/archives/がないほうが短くて良いかなと思い変更しようと思った訳です。

 

で、パーマリンク設定のカスタム構造から/%post_ID%に変更する事で
ドメイン名/記事IDという短いURLで表示を変更する事ができた。

516.jp/%post_ID%
516.jp/1770

そこまでは良かったのであるが、
/archives/ありのURLにアクセスした場合に
/archives/無しへのリダイレクトが行われずに
NotFoundになってしまう事に気が付いた。

まぁ仕組み的に考えてみれば仕方がないか。

とはいえ、このままだと、
過去のGoogle等の検索エンジンにインデックスされているURLは
/archives/付きなので、検索エンジン経由でアクセスしてくるユーザーには
すべてNotFoundが表示されてしまう事になる。

検索エンジンのインデックスがアップデートされるのを気長に待つ
という訳にもいかないので、対策が必要である。

もっとも単純な方法としてはこれまでの/archives/つきURLひとつひとつに
新しい/archives/無しURLへのリダイレクト処理をすれば良い話だが
それはちょっと面倒というか日が暮れてしまう。

という訳で調べてみるとSimple 301 Redirectsという
この問題を解決するプラグインを発見した。

 

Simple 301 Redirectsを有効化して、
ワイルドカード(*)を使用して一括リダイレクトをする。

今回のケースであれば
/archives/*

/*
をリダイレクトするという処理である。

Simple301Redirects

 

これで無事リダイレクトができました。

http://516.jp/?p=1770
http://516.jp/archives/1770