WordPressのパーマリンクで構造を変えた時のリダイレクト設定

WordPressのパーマリンクで構造を変えた時のリダイレクト設定

2026年3月2日

WordPressでの初期設定は基本「https://example.com/?p=123」のような数字だけのURLになっているが、投稿名「https://example.com/sample-post/」のように、記事のタイトルなどが入ったわかりやすいURLにしたい。

それもかなり長くそのままの状態で使っていたのでリダイレクトの設定が必須になる。

パーマリンク構造変更時は、「Redirection」プラグインで旧URLから新URLへ「301リダイレクト」を設定するだけである。
プラグインで「ソースURL(旧)」と「ターゲットURL(新)」を指定して自動転送を行うのが最も簡単な方法になる。

パーマリンク変更時のリダイレクト手順

『Redirection』プラグインのインストール。

「ツール -> Redirection」で設定できる。

最初の設定で以下のところにチェックを入れると、パーマリンクを変更しても自動的にリダイレクトしてくれることになる。
これは別にパーマリンクの設定だけでなくスラッグの変更においても有効で、これは必ずチェックを入れた状態がベストで必須だと思う。
全てのURLが変更になったら自動的にリダイレクトしてくれるよになるという便利な機能である。

上の設定が機能するのはスラッグを変更した時である。
例えばタイトルが日本語なので、デフォルトでスラッグも日本語になっているので、これを英語のスラッグに変更した時にリダイレクトが機能している。

しかし、これをチェックしたからといってパーマリンクを変更したら何もしないでリダイレクトというふうにはならなかった。

「パーマリンク構造」を変更したときのリダイレクト設定

以下は通常の個別にURLを変更する場合の設定方法になる。

この方法だと全てのページを一つ一つ登録していくという途方もない作業が待っていることになる。

パーマリンク構造を変更する場合がやはりあると思う。
以下の方法だとパーマリンク構造を変更しても2行の設定だけで簡単に変更することができる。

正規表現(Regex)を使って一括設定する方法(推奨)

「日付と投稿名」から「投稿名」など、ルールに基づいて一括で変更する場合に最適。

ケースA:「日付と投稿名」のように/年/月/日/記事名 から「投稿名」の /記事名 に変更した場合の一括設定は以下のようになる:

ソースURL:^/\d{4}/\d{2}/\d{2}/(.+)/$
ターゲット URL:/$1/

実際の入力は「正規表現」を選択する必要がある。

最終的には以下のようレイアウトになる

ソースYRLを入力するとき、上の画像のように「正規表現」にチェックをいれる:これが必須になる。

Regex、日本語では「正規表現」と呼ぶ。これは、文字列のパターン(例: 電話番号、メールアドレス、特定の単語)を1つの特殊な文字列で表現する手法。テキストの検索、置換、バリデーション(入力チェック)に強力なツールとして利用される。

転送ルールを追加したら以下のように301コードで転送ルールの一番上に追加される。

下の「テストページ」の転送ルールは投稿ページのスラッグで日本語を英語に変更した時に、自動的に変更されたものである。
このようにスラッグを変更すると自動的に以下のところに追加されリダイレクトされることになる。非常に便利な機能である。

このようにサイト全体で構造(例:日付ベース→投稿名)を変えた場合、ルール設定が複雑になるため、プラグインの正規表現機能を使う必要になる。

他の設定の仕方

ケースB:/年/月/記事名 から /記事名 に変更した場合の一括設定は以下のようになる:

ソースURL:^/\d{4}/\d{2}/(.+)/$
ターゲット URL:/$1/

設定後はブラウザやキャッシュ系プラグインのキャッシュをクリアして、正しく転送されるか確認することが必要である。

その時、投稿IDやURLや画像など色んな種類のデータを書き出すプラグイン「Export All URLs」を使って一覧を作成しておくと転送がうまく行っているかの確認に便利である。