基礎知識 2023.10.04

WordPressのリダイレクト設定方法を解説!プラグインあり・無し

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

Webサイトで指定されたページが存在しない場合、通常「404エラー」と呼ばれるメッセージが表示されます。サイト移転などでURLが変更するとリンクが切れてしまうため、404エラーを回避するためリダイレクトを設定する必要があります。

本記事では、WordPressサイトでリダイレクト設定を行う方法をわかりやすく解説します。

リダイレクトとは

リダイレクトとは、表示しているページから、別のページへ強制的に転送することです。

通常、リクエストしたURLが存在しない場合にWebサーバーは「404エラー」を返します。しかし、リダイレクトの設定がされている場合は、ブラウザのリクエストに対してWebサーバーはページの転送先を伝えるリダイレクトコードと転送先URLを返します。

ブラウザは、返されたリダイレクトコードを元に転送先URLをリクエストしてページを表示します。

またGoogle botなどのクローラーにもリダイレクトの情報が伝わるため、元のURLが蓄積してきたSEO評価を引き継ぐことができます。

リダイレクトには「301」と「302」の2種類がある

リダイレクトは、「301リダイレクト」と「302リダイレクト」の2種類がよく使用されます。これらは転送を行う期間によって使い分けます。

301リダイレクトは、転送元のURLから、転送先のURLへ恒久的に転送するリダイレクトです。

一方、302リダイレクトは、一時的にURLを転送する目的で使用されるリダイレクトです。将来的に元のURLを使用する場合は302リダイレクトを使用します。

リダイレクトが必要になるケース

Webページのリンク切れが発生し、リダイレクトが必要になるケースは主に以下の3つです。

ページのURLを変更する場合

ページのURLを変更する場合

すでに公開しているページのURLを、何らかの理由で変更した場合にはリダイレクトが必要になります。

  • 公開したURLにスペルミスがあり修正した
  • サイト全体でパーマリンクの命名規則に変更があった
  • 意図せず同じような内容のページが出来てしまい統一する

などの場合が該当します。
このようなケースでは301リダイレクトを設定します。

ドメインを変更する場合

ドメインを変更する場合

Webサイトの移転などでドメインを変更する場合には、リダイレクトが必要になります。

  • サイトのドメイン名を変更した
  • SSLの設定をして、http://→https://にURLが変更した

などの場合が該当します。
このようなケースでは301リダイレクトを設定します。

一時的に別ページに転送する場合

一時的に別ページに転送する場合

公開しているページの内容を、URLを残したまま修正したい場合には一時的にリダイレクトして別ページに飛ばします。

  • 販売商品が売り切れになり、再入荷するまで別のページを表示したい

などの場合が該当します。
このようなケースでは302リダイレクトを設定します。

プラグイン「Redirection」でリダイレクト設定をする手順

WordPressでは、リダイレクトを設定する方法として「プラグインを使用する」方法と、プラグインを使用せずに「.htaccess」で設定する」方法の2種類があります。

まずは、初心者でも簡単にリダイレクト設定ができるプラグイン「Redirection」を使用する方法を紹介します。

「Redirection」は、簡単にリダイレクト設定ができて、無料で使用できるプラグインです。10年以上の実績があり、200万以上のサイトでインストールされています。
プラグイン「Redirection」でリダイレクト設定をする手順

【手順1】プラグインのインストール

WordPress管理画面から、「プラグイン」→「新規追加」を開いて「Redirection」を検索します。プラグインの「今すぐインストール」をクリックしてから「有効化」をクリックします。
プラグインのインストール

WordPress管理画面から、「ツール」→「Redirection」をクリックし、「セットアップを開始」をクリックします。
プラグインのインストール

基本セットアップ画面で「WordPressの投稿と固定ページのパーマリンクの変更を監視」「すべてのリダイレクトと404エラーのログを保存する」「リダイレクトと 404 エラーの IP アドレスを記録する」のチェックボックスにそれぞれチェックを入れてから「次へ」をクリックします。
プラグインのインストール

REAT API画面で「セットアップ完了」をクリックします。
プラグインのインストール

「REST API」の設定進行状況がパーセント表示されます。100%になったら「次へ」をクリックします。
プラグインのインストール

インストール完了画面で「準備完了です!」をクリックします。
プラグインのインストール

Redirectionの転送ルール設定画面が表示されれば完了です。おつかれさまでした。
プラグインのインストール

【手順2】リダイレクト設定をおこなう

【手順1】からの続きであればそのまま、またはWordPress管理画面から「ツール」→「Redirection」を開きます。「新しい転送ルールを追加」欄に、リダイレクトに必要な情報を入力していきます。
リダイレクト設定をおこなう

基本は、【1】ソースURL(転送元記事のURL)と【3】ターゲットURL(転送先記事のURL)を入力します。

項目 入力する内容
【1】ソースURL 転送元記事のURL
【2】クエリーパラメータ (デフォルト)順番に関わらず完全一致
【3】ターゲットURL 転送先記事のURL
【4】グループ (デフォルト)転送ルール

【1】ソースURL

転送元記事(リンクが切れてしまった記事)のURLを入力します。絶対URLでも相対URLでも記述可能です。

【2】クエリーパラメータ

クエリーパラメータとは、URLの最後に付与される「?query=param」のような文字列で、アクセス分析に使用したり、ページ内の表示を操作する場合などに使用されます。

特別な設定を行わないのであれば、デフォルトの「順番に関わらず完全一致」を選択します。

他には、「すべてのパラメーターを無視」「無視してターゲットにパラメータを渡す」を選択可能です。

「すべてのパラメーターを無視」は、URLにパラメータが付与されていない場合でも、ソースURLとパスが一致すればリダイレクトされます。

「無視してターゲットにパラメータを渡す」は、URLにパラメータが付与されている場合、リダイレクトされた後にパラメータが同じように付与されます。

【3】ターゲットURL

転送先記事のURLを入力します。ショートコードを使用することも可能です。

【4】グループ

転送ルールをグループで管理できる機能です。グループ分けすることで、大量のリダイレクトを整理できます。初期設定では「転送ルール」と「編集済みの投稿」の2グループが用意されており、別途追加するには「グループ」タブでグループ名を追加します。
リダイレクト設定をおこなう

追加するグループには、「WordPress」「Apache」「Nginx」のいずれかを選択できますが、特別な設定をする必要がなければ「WordPress」を選択してください。

なお、リダイレクトの設定数がそれほど多くない場合はグループ分けを行う必要はないためデフォルトの「転送ルール」を選択したままにします。

基本的なリダイレクト設定はこれで完了です。

【参考】詳細設定の項目について

リダイレクトの条件をさらに詳細に設定することも可能です。その場合は、「新しい転送ルールを追加」欄の下部にある歯車アイコンをクリックして詳細メニューを表示します。
詳細設定の項目について

設定できる項目は以下のとおりです(グレー部分は基本設定と同じ項目ですので、上記を参照してください)。

項目 入力する内容
【1】ソースURL 転送元記事のURL
【2】クエリーパラメータ (デフォルト)順番に関わらず完全一致
【3】タイトル (省略可)リダイレクトの目的
【4】一致条件 (デフォルト)URLのみ
【5】一致した時 (デフォルト)URLへ転送
【6】次のHTTPコードと共に 301-恒久的に移動
【7】ログから除外する チェック空欄
【8】ターゲットURL 転送先記事のURL
【9】グループ (デフォルト)転送ルール
【10】位置 (デフォルト)0

【3】タイトル

リダイレクトに関する説明文を入力する欄です。ここに入力したテキストは、転送ルールの一覧でURLの代わりに表示されます。

【4】一致条件

URLがリダイレクト条件に一致するかどうかを判断するための基準を設定できます。

通常は、デフォルトの「URLのみ」を選択します。12種類の設定があり、いずれもURLに加えて別の判断基準をプラスする条件です。

選択肢 内容
URLのみ ソースURLのみで判断
URLおよびログイン状態 ソースURLに加えて、ユーザーのログイン有無を判断基準に使用
URLと権限グループ/権限 ソースURLに加えて、ログインユーザーの権限を判断基準に使用
URLおよびリファラー ソースURLに加えて、リファラー(以前いたURL)を判断基準に使用
URLおよびユーザーエージェント ソースURLに加えて、ブラウザのユーザーエージェントを判断基準に使用
URLとCookie ソースURLに加えて、Cookieを判断基準に使用
URLとIP ソースURLに加えて、ユーザーのIPアドレスを判断に使用
URLとサーバー ソースURLに加えて、サーバー名を判断基準に使用
URLとHTTPヘッダー ソースURLに加えて、HTTPヘッダを判断基準に使用
URLとカスタムフィルター ソースURLに加えて、自身で記述したカスタム条件を判断基準に使用
URLとWordPressページタイプ ソースURLに加えて、ページタイプ(現在は404のみ)を判断基準に使用
URLと言語 ソースURLに加えて、ブラウザの言語を判断基準に使用

例えば、一致条件に「URLおよびログイン状態」を設定すると、追加で「ログイン中」「ログアウト中」のオプションが表示されます。

それぞれの項目にURLを入力することで、「ログインしているユーザーにだけ特定のURLにリダイレクトする」ことができます。
一致条件

【5】一致した時

URLが条件に一致した場合の動作を設定できます。通常は、デフォルトの「URLにリダイレクト」を設定します。合わせて5つの選択肢があります。

選択肢 内容
URLにリダイレクト 別のURLにリダイレクトし、URLを更新
ランダムな投稿にリダイレクト アクセスするたびに、サイト上でランダムに選択されたページをリダイレクト
パススルー 別のURLにリダイレクトし、そのままのURLを保持
エラー(404) エラーを返す
何もしない リダイレクトを停止

【6】次のHTTPコードと共に

リダイレクトのステータスコード(ブラウザが受信するコード)を設定できます。6つの選択肢がありますが、「301 – 恒久的に移動」または「302 – 発見」のどちらかを設定することがほとんどです。

ステータスコード コードの意味
301 – 恒久的に移動 ページが恒久的に移動した(Moved Permanently)
302 – 発見 ページが一時的に移動(Found)
303 – See Other(次のページ) 他のページを参照
304 – Not Modified(変更なし) リクエストしたページが未更新
307 – 一時リダイレクト 一時的なリダイレクト(Temporary Redirect)
308 – 恒久リダイレクト 恒久的なリダイレクト(Permanent Redirect)

【7】ログから除外する

この欄にチェックを入れると、このリダイレクトをログに記録しません。

【10】位置

リダイレクトが処理される順序を制御するもので、数値が小さいほど優先度が高くなります。特に順序を設定する必要がなければデフォルトの「0」のままにします。

「Redirection」を使用する際の注意点

「Redirection」はリダイレクトを設定するために、とても便利なプラグインです。

ただし、パーマリンク系のプラグインを同時に導入している場合は、機能が競合してしまい、正しく動作しなくなる可能性があります。

もし、「Redirection」を使っていて、うまく動作しない場合は、他のプラグインとの競合を確認してみましょう。

プラグインなし:「.htaccess」で設定する方法を行う方法もある

リダイレクトの設定は、プラグインを使用せずにWebサーバーにある「.htaccess」ファイルを編集することでも可能です。

「.htaccess」ファイルは、WebサーバーソフトウェアのApache(アパッチ)を制御する際に使用する設定ファイルのひとつで、リダイレクト処理もこのファイル内に記述します。

手順は、FTPツール等でWordPressのフォルダへアクセスし、「.htaccess」ファイルをダウンロードします。

テキストエディタでファイルを開いたら、リダイレクトするためのコードを追加し、保存して閉じます。変更したファイルをアップロードすれば完了です。なお、「.htaccess」が設置されたディレクトリ以下が影響範囲です。通常は、WordPressがインストールされているディレクトリの直下に存在します。
「.htaccess」で設定する方法を行う方法

同じディレクトリ構造で、別のドメインへ引っ越しした場合

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ http://destination-url.com/$1 [R=301,L]
</IfModule>

RewriteRule部分は、正規表現で条件を記述します。この例では、全ての文字列「(.*)」に合致した文字列を、「http://destination-url.com/」配下で利用しています。「$1」は、( )内の文字列を後方参照する正規表現です。

※正規表現とは
正規表現とは、指定した条件に合致する文字列、文字や記号の組み合わせで表現することです。

例)
. 任意の1文字
* 直前の文字が0個以上連続するもの
^ 行頭
$ 行末

たとえば「.*」であれば、「任意の1文字が0個以上連続するもの」が該当するため、結果的に「全ての文字列」が該当します。

同じドメインで、ディレクトリのみ変更する場合

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^source-dir/(.*)$ /destination/$1 [R=301,L]
</IfModule>

この例では、「^source-dir/(.*)$」(source-dirディレクトリ配下のファイル)が「/destination/$1」(/destinationディレクトリ配下のファイル)として転送されます。

ページ単位でリダイレクトする場合

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^source$ https://www.website-url.com/destination [R=301,L]
</IfModule>

この例では、「転送元ドメイン/source」というページが、「https://www.website-url.com/destination」へ転送されます。

なお、入力ミスなどでWebサイトに問題が発生する可能性もあるため、変更する前の「.htaccess」ファイルをバックアップとして保存しておくようにしてください。

まとめ

サイトを移転する際や常時SSL化を実施した際など、URLが変更するシーンは意外と発生します。リダイレクト設定を行うことで、ユーザビリティを担保し、転送前ページのSEO評価を適切に引き継ぎます。WordPressサイトの場合はプラグインを使用すれば容易に設定できるため、設定することをおすすめします。

WordPress保守・運用のパートナーなら「wp.support」にお任せ!

WordPressサイトを運用していて、以下のようなお悩みはありませんか?

  • 管理画面を使いやすくしたいけれど、カスタマイズする時間や技術がない…
  • サイトのUI/UXを改善したいけれど、自社内では難しい…
  • WordPressサイトを高速化したいけれど、ノウハウがない…
  • セキュリティ対策をしたいけれど、知識のある人材がいない…
  • 日々の業務に追われて、バージョンアップなどの保守業務が放置気味…
  • ちょっとしたトラブルを気軽に相談できる相手が欲しい…

「wp.support」は、WordPressのプロフェッショナル集団によるWordPress保守サービスです。
「セキュリティ対策」「バージョンアップ対応」「定期バックアップ」はもちろん、「電話サポートが無制限」なのでカスタマイズの方法やトラブル発生時にも気軽にプロに相談できます。

既に導入済みのお客様からも、
「些細なことでも気軽に相談できるパートナー的な存在」
「困ったら相談していいんだ、と気持ちが楽になった」
と大変ご好評をいただいています。

WordPress保守・運用のパートナーをお探しなら、ぜひお気軽にお問合せください。

>> wp.supportに無料相談する

バージョンアップが面倒だと思ったら WordPress保守・セキュリティ対策は『wp.support』にお任せ!

wp.support資料

WordPressのバージョンアップやセキュリティ対策にお悩みではないですか?

面倒な保守・運用作業は全て任せて、コア事業に集中してください。
大手・上場企業100社以上のWebサイトの安全を守る、WordPressのプロフェッショナル集団が、あなたのWordPressサイトを守ります!

【対応範囲】
・WordPress、プラグインのバージョンアップ ・セキュリティ対策 ・継続的なバックアップ ・緊急時の復旧対応 ・技術サポート・電話/メールサポート無制限 etc...

WordPressに関することなら何でもご相談ください!