サイトのドメインを変えたり、ページの階層を変えたときにほぼ必須の作業なのがリダイレクト設定。
でもGoogle検索にすでにインデックスされている場合は、前のURLについていたGoogleからの評価を新しいURLに引き継がせるために、301リダイレクトを設定する必要があります。
そこでやることとして、.htaccessやサーバーサイドスクリプトなど設定には方法がありますが、これが難しい、というか触るのが怖いということで、非エンジニアには高いハードルになるわけです。
WordPressを使っているとWordPress自体やテーマによって.htaccessに自動で書き込まれたりするので、非エンジニアには余計に難解に・・・。
そこで手軽なのがプラグイン「Redirection」です。やっぱり便利なプラグインです。
Redirectionのリダイレクト設定
記事ページの階層を変更した場合を例にしたRedirectionのリダイレクト設定です。
RedirectionはWordpress内で検索して出てくるので、インストールしておきましょう。※ここではインストール手順は割愛します。
WordPressの設定→ホームページ設定を「最新記事」にしていて、「ドメイン名/投稿記事ページ」になっていたものを、トップページと投稿ページに特定の固定ページに設定して、「ドメイン名/blog/投稿記事ページ」といった具合に、パーマリンクに/blog/を追加したとします。
つまり、
旧URL:https://example.com/post-slug/
から
新URL:https://example.com/blog/post-slug/
変更した場合ですね。
設定方法を順を追って見ていこう
まず基本的な設定として、指定のURLにアクセスしたときに「ドメイン名/blog」にリダイレクトするための設定の流れを見ていきましょう。
基本的な設定の流れ
STEP1
Redirectionをインストールして有効化すると「ツール」直下に「Redirection」という項目が追加されているのでクリックする
STEP2
Redirectionの設定画面が開いたら「新しいリダイレクトを追加」する
■ソースURL(リダイレクト元)
^/([^/]+)/$■ターゲットURL(リダイレクト先)
/blog/$1/STEP3
「正規表現を使用」にチェックを入れる
STEP4
HTTPコードを301(恒久的)に設定
STEP5
「追加」ボタンを押して登録する
リダイレクト先の設定に使用している$は正規表現の一種で、リダイレクト元の設定内で()で囲まれた部分を1つの「グループ」と考えて、$1の場合は1つ目のグループを、$2の場合は2つ目のグループをリダイレクト先のURLに置き換えることになります。
特定のページをリダイレクトさせないように設定する方法
さて、ここで一つ問題があります。
先ほどの例(/blog/に階層変更)だと階層の変更は投稿関連のページのみで、プロフィールページや問い合わせページといった固定ページ(例:aboutやcontact)は何も変わっていないのでリダイレクトする必要ないのに、ポーンとリダイレクトされてしまいます。
なので、固定ページのような階層の変更がないページの除外設定が必要です。
除外設定方法
除外設定としては、こちらも正規表現で除外することを明記します。
先ほどの設定ではドメイン配下のページすべてが対象でした。
^/([^/]+)/$
プロフィール(about)、問い合わせ(contact)、プライバシーポリシー(privacy-policy)の3つを除外する場合は、上記の記法からこんな感じに書き換えます。
^/(?!about|contact|privacy-policy)([^/]+)/$
![]()
mimihokuro
リダイレクト先の設定は/blog/$1/のままでOKです
これで指定の固定ページではリダイレクトが除外されるようになります。
一括リダイレクト設定の設定漏れでログインできなくなることも
特定のページをリダイレクトさせないように除外設定する際、固定ページだけに意識が行きがちですが、意外に忘れがちなのがWordPressがインストールされているディレクトリ配下へアクセスしたときの除外設定です。
ドメイン配下のページすべてをリダイレクト設定しているので、固定ページだけでなく、ログインページもリダイレクトの対象になるので、こちらも忘れずに除外設定しておきましょう。
さもないと、一度ログアウトしてしまうと次回以降ログインしようと思ってもリダイレクトされてログインできなくなってしまいます😱
![]()
mimihokuro
私もやらかしてログインしたいのにリダイレクトされてログインできなくなってしまいました・・・💦
ログインできなくなったときにはどうすればいい?
もし除外設定を忘れてログインできなくなってしまった場合は、FileZillaのようなFTPソフトやXサーバーのサーバーパネルのような管理画面などからディレクトリ操作する必要があります。
ログインできない問題の解決までの流れ
STEP1
FTPソフトやファイル管理画面からWordpressがインストールされているディレクトリにアクセスする
STEP2
/wp-content/plugins/へディレクトリ移動するSTEP3
redirectionディレクトリを探してディレクトリ名を適当な名前に変更するプラグインのディレクトリ名を変更すると、変更したプラグインがWordpressの管理画面から読み込めなくなるので、一時的にRedirectionが無効化されます。
STEP4
今まで通りにログイン画面からログインする
STEP5
STEP3で変更した
redirectionディレクトリを元の名前に戻すSTEP6
Redirectionの設定画面でログインページなどを除外設定する
![]()
mimihokuro
「リダイレクト設定忘れてログインできない!どうしよう!💦」と焦らず、落ち着いて上記の方法を試してみてください。
RedirectionはWordpressを扱う方には簡単で便利なプラグインなので、.htaccessを使って301リダイレクト設定するのが怖い、難しいと感じる方はぜひ試してみてください!