【無料】はてなブログからWordPressへの移行サービスはじめました!

正規表現でリダイレクトが行えるRedirectionsの設定と使い方

Redirections

WordPressにはリダイレクト用のプラグインとしてRedirectionsというものがあります。

このプラグインは.htaccessファイルを編集すること無く簡単にリダイレクトを行うことが出来ます

さらにこのプラグインは正規表現にも対応していて1つの設定で多くのページを一括してリダイレクトすることも可能です。

リダイレクトとは

そもそもリダイレクトとは、ページのURLが変更になったり違うページに飛ばしたい場合に使う機能になります。

ウェブサイトにおけるリダイレクト(英:redirect)とは、ウェブサイトの閲覧において、指定したウェブページから自動的に他のウェブページに転送されること。URLリダイレクト(URL redirection)とも言われる。

通常はウェブページのURLが変わったときに、元のURLから新しいURLへ誘導するときに用いられる。フィッシング詐欺サイトへの誘導などで用いられている場合もある。

リダイレクト (HTTP) – Wikipedia

はてなブログではJavaScriptを使う必要がありますが、WordPressではプラグインで簡単に行えます。

リダイレクト用プラグインRedirectionsの使い方

WordPressの場合は、Redirectionsというプラグインを使うのが一般的です。

最も簡単な使い方はURLを間違って公開してしまった記事のURL(A)を、Aにリクエストがあった場合でも後で修正した正しい記事のURL(B)というURLに転送する設定です。

ソースURL URL(A)

ターゲットURL 転送先URL(B)

これらを入力して転送ルールを追加をクリックするだけでリダイレクトの設定が完了します。

こうすることでURL(A)にリクエストがあってもURL(B)にリクエストがあっても、どちらでもURL(B)の記事を表示させることが出来ます。

MEMO
間違った記事のURLの修正以外にも、あとで書いた記事のほうが前の記事より詳しいから前の記事にリクエストがきたら自動的に新しい記事を表示させたい場合などにも使えます。

正規表現とは?

実はこのプラグインは正規表現にも対応しています。

正規表現とはなんぞや?という方も多いと思いますので簡単に説明すると

正規表現
文字列の集合を一つの文字列で表現する方法の一つ。

例えばA~Zまでのどれかを正規表現で表すと[A-Z]となります。

同様に0~9までのどれかを正規表現で表すと[0-9]となります。

なんでもいい1文字の場合は . となります。

ポイント
正規表現にはかなり複雑な方法もありますが、つまりこれを使うことで個別にリダイレクトの設定をしなくてもある一定のルールがあれば1つの設定ですべてのリダイレクトが可能になります。

はてなブログからWordPressに移行した場合の正規表現

はてなブログの記事URLには以下のようなパターンが存在します。

パターン1 ドメイン/entry/年/月/日/時間の数字14桁

パターン2 ドメイン/entry/年/月/日/記事タイトル 

パターン3 ドメイン/entry/自分でカスタマイズした文字
MEMO
一番下のパターン3はパーマリンク設定で/entry/%postname%にしていればリダイレクト設定は不要です。

しかし、上のパターン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に転送することができます。

注意
この場合は、パーマリンク設定も/entry/%postname%から%postname%に変更する必要があります。

permalink WordPressのパーマリンク(URL)の設定はSEO的に何がおすすめ?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です