異なるディレクトリに設置したWordPress間でリダイレクトさせる

2つのWordPressディレクトリ配置を入れ替えたため、記事のURLが変わりました。そこで古いURLへのアクセスを新URLへと301リダイレクトする必要があります。
同一WordPressなら勝手にリダイレクトしてくれるのですが、マルチサイトのような感じで別のWordPressなので手動でリダイレクトを設定しなければいけません。

ここではWordPressのリダイレクト用プラグインとして定番の「Redirection」とExcel、スプレッドシートを利用して過去記事のURL一覧を作成し、プラグインに設定する方法を記載します。

Redirectionを入れるWordPressは新しい方(転送先)。転送元のWordPressに入れて同じ設定をしても動きませんでした。

この記事は単体でもお読みいただけますが、とあるプロジェクトで実際に行った作業の一部となっております。

目次

リダイレクト用プラグイン「Redirection」

転送先のWordPressにプラグインをインストールします。2021年10月時点で有効インストール数2百万以上、最新Verに対応と定番プラグインのようです。

このプラグインは正規表現というものに対応しており、特定の文字を含むURLを一括で設定することができとても便利・・・なのですが何度やっても思い通りのリダイレクトが走らなかったのでExcelとスプレッドシートを使って過去記事の一覧を作成し、転送前と転送後のURLを記載したcsvをインポートするという力業で解決しました。

指定した記事URLのリダイレクトだけになるので、余計なページで動作する心配もなく結果的にはOKとする。

変更前:https://example.com/1/
変更後:https://example.com/old-4/1/

WordPressのインストール先をルートディレクトリからold-4というディレクトリにしたので、記事URLが変わった。変更前URLへのアクセスを変更後URLへリダイレクト処理する。

リダイレクトリストの作成

今回はスクショも撮ったのでこのブログのURLで説明します。先ほどの例とは別のパターンです。
投稿ID形式のURLを、年号-IDの形式に変換してみます。リストとして作成するので、リダイレクト先のURLはどんな形でも使えます。この機会に個別のパーマリンクにするのもありかもしれません。

https://one-memo.com/1/
https://one-memo.com/2/
https://one-memo.com/3/
https://one-memo.com/4/
https://one-memo.com/5/
https://one-memo.com/2021-1/
https://one-memo.com/2021-2/
https://one-memo.com/2021-3/
https://one-memo.com/2021-4/
https://one-memo.com/2021-5/
リダイレクトリストの作成
  1. WordPressの記事をエクスポート
  2. ExcelでURL一覧を整形
  3. スプレッドシートで転送後URLを作成
  4. Redirectionにインポート

WordPressの記事をエクスポート

WordPress:ツール>エクスポート

旧URLリストを作成します。
WordPressのツール>エクスポート機能で記事をエクスポートします。今回は投稿ページのみ選択してエクスポートしました。

エクセルでURL一覧を整形

STEP
XMLファイルを読み込む

Excel:データ>データの取得>ファイルから>XMLから

Excelで先ほどダウンロードしたxmlファイルを読み込み、「データの変換」を押します。

STEP
PowerQueryエディターでchannelを展開

PowerQueryエディターというのが開くので、「channel」の右の展開ボタンitemにチェックOKと進みます。

STEP
PowerQueryエディターでchannel.itemを展開

更に「channel.item」の右の展開ボタンtitleとlinkにチェックOKと進み、左上の「閉じて読み込む」を押します。

STEP
リダイレクト元URL一覧の完成

するとExcelシートにXMLファイルが展開されます。
この記事の通りにやっていればA列に投稿タイトル、B列にURLが入っているはず。
このB列がリダイレクト元リストになります。新しいシートやスプレッドシートのA列B列にコピペしましょう。

下準備完成品がこちら。A列、B列に同じURLをコピペします。次のステップでB列をリダイレクト先に変換していきます。

スプレッドシートで転送後URLを作成

STEP
スプレッドシートで開く

先ほど下準備したリダイレクト元リストをGoogleスプレッドシートで開きます。なんならコピペしてもいいです。
B列を選択し、ショートカット「Ctrl+F」で検索ボックスを出し、「その他のオプション」を押します。

STEP
正規表現で置換

スプレッドシートでは正規表現での検索と置換が使えます。

今回はhttps://one-memo.com/数字/の数字部分を正規表現で検索し、/2021-数字/に変換しています。
ほんとはこれをRedirectionに設定したら動くはずなんだけどもうまくいかなかった・・・。

正規表現について詳しくはおググりください。

STEP
csvで保存

A列にリダイレクト元URL、B列にリダイレクト先URLが記載された状態になったら、csv(カンマ区切り)で保存します。

Redirectionにインポート

動作確認中はRedirectionのオプション「HTTP Cache Header」はキャッシュしないにしておく。

STEP
グループを追加

後々の管理のために、新しくグループを追加します。タイプはWordPress。

STEP
インポート

作成したcsvをインポートして完了。

STEP
動作確認

転送ルールに追加されるので、動作確認してみましょう。

以上、異なるディレクトリに設置したWordPress間でリダイレクトさせる方法でした。

ブログランキング・にほんブログ村へ
↑クリックしてもらえると励みになります!
よかったらシェアしてね!
目次