WordPressにはリダイレクト用のプラグインとしてRedirectionsというものがあります。
このプラグインは.htaccessファイルを編集すること無く簡単にリダイレクトを行うことが出来ます。
さらにこのプラグインは正規表現にも対応していて1つの設定で多くのページを一括してリダイレクトすることも可能です。
目次
リダイレクトとは
そもそもリダイレクトとは、ページのURLが変更になったり違うページに飛ばしたい場合に使う機能になります。
ウェブサイトにおけるリダイレクト(英:redirect)とは、ウェブサイトの閲覧において、指定したウェブページから自動的に他のウェブページに転送されること。URLリダイレクト(URL redirection)とも言われる。
通常はウェブページのURLが変わったときに、元のURLから新しいURLへ誘導するときに用いられる。フィッシング詐欺サイトへの誘導などで用いられている場合もある。
はてなブログではJavaScriptを使う必要がありますが、WordPressではプラグインで簡単に行えます。
リダイレクト用プラグインRedirectionsの使い方
WordPressの場合は、Redirectionsというプラグインを使うのが一般的です。
最も簡単な使い方はURLを間違って公開してしまった記事のURL(A)を、Aにリクエストがあった場合でも後で修正した正しい記事のURL(B)というURLに転送する設定です。
ソースURL URL(A) ターゲットURL 転送先URL(B)
これらを入力して転送ルールを追加をクリックするだけでリダイレクトの設定が完了します。
こうすることでURL(A)にリクエストがあってもURL(B)にリクエストがあっても、どちらでもURL(B)の記事を表示させることが出来ます。
正規表現とは?
実はこのプラグインは正規表現にも対応しています。
正規表現とはなんぞや?という方も多いと思いますので簡単に説明すると
例えばA~Zまでのどれかを正規表現で表すと[A-Z]となります。
同様に0~9までのどれかを正規表現で表すと[0-9]となります。
なんでもいい1文字の場合は . となります。
はてなブログからWordPressに移行した場合の正規表現
はてなブログの記事URLには以下のようなパターンが存在します。
パターン1 ドメイン/entry/年/月/日/時間の数字14桁 パターン2 ドメイン/entry/年/月/日/記事タイトル パターン3 ドメイン/entry/自分でカスタマイズした文字
しかし、上のパターン1と2はWordPressではスラッシュがすべてハイフンに置換されるためすべての記事をリダイレクトする必要があります。
ドメイン/entry/年/月/日/+文字列の場合
上の2つのパターンをドメイン/entry/年/月/日/+文字列と考えます。
/entry/2018/01/01/123456 /entry/2018/01/01/abc ↓ /entry/2018-01-01-123456 /entry/2018-01-01-abc
にリダイレクトする必要があります。
この場合、数字4桁/数字2桁/数字2桁/文字列 というパターンになります。
ソースURL /entry/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ ターゲットURL /entry/$1-$2-$3-$4/
こうすることで上のようなパターンのスラッシュが入ったURLを、すべてハイフンのURLに一括でリダイレクトできます。
/entry/無しのURLにしたい場合
私はあまり気になりませんが、WordPressに移行したら/entry/というURLを使いたくないという方もいると思います。
そういう場合はすべてのリクエストを転送させる必要があります。
何文字かわからない文字列を正規表現で表すと.*となります。
ソースURL /entry/(.*)
ターゲットURL /$1
このように設定することで/entry/を含むすべてのリクエストを/entry/なしのURLに転送することができます。