RedirectionでURLを転送するときは、旧URLと新URLの対応を先に決め、限定したルールから確認します。
記事の評価や順位の維持を保証する設定ではありません。
旧記事の全URLを巻き込む.htaccess例と、カテゴリーの先頭要素から移転先を推測するCSV生成コードは撤回しました。
1件の転送を登録する
転送元は通常、ドメインを含まないパスです。
たとえば https://example.com/old-post/ から /new-post/ へ移すなら、転送元を /old-post/、転送先を /new-post/ とし、正規表現を無効にします。
WordPressがサブディレクトリにある場合も、実際のリクエストパスとの一致を確認してください。
恒久移転は301、一時的な転送は302など、意図に合わせます。
先に検証環境で確認し、本番では既存ルールをエクスポートしてから追加します。
末尾スラッシュ、大文字小文字、クエリーパラメーターの扱いもルールの条件です。
既存設定を退避するときは、JSON形式で復元に必要なデータを選び、書き出したファイルを保存します。
以下の4列CSVは転送ルールの入力例であり、グループや設定などを含む全データのバックアップではありません。
CSVは確認済みの対応表から作る
次は説明用の2行です。
ヘッダー行を付けず、各行を「転送元,転送先,正規表現フラグ,HTTPコード」とします。
実際の旧URL・新URLへ置き換えてから、少数のルールで読み込み結果を確認してください。
/old-post/,/new-post/,0,301
/old-guide/,https://example.com/new-guide/,0,301パーマリンク変更では、変更前の実URLと投稿IDを保存し、変更後の同じ投稿IDの実URLと照合します。
スラッグだけからURLを組み立てると、日付、階層、カテゴリーの選択、末尾スラッシュなどを取り違えます。
移転先が存在しない行や、転送元と同じ行は登録しません。
読み込み前に公式のインポート画面のプレビューで対象を確認し、既存ルールと同じ転送元が含まれていないか照合します。
重複チェックをしない設定では新規項目が追加され、「重複を無視」では該当項目を取り込まず、「重複を更新」では既存項目を書き換えるため、意図した処理を選んでください。
同じCSVの再取り込みでも既存ルールに影響する場合があるので、試験用に追加する行と既存ルールを更新する行を区別します。
正規表現は対象ディレクトリに限定する
たとえば旧ディレクトリ内の各パスを同じ構造の新ディレクトリへ移すなら、転送元 ^/old-section/(.*)$、転送先 /new-section/$1 とし、正規表現を有効にします。
この例は対応する新URLが存在することが前提です。
全URLを対象にする表現を管理画面の除外代わりに使わないでください。
CSVを読み込んだ後の確認順序
| 確認する対象 | 結果の判断 |
|---|---|
| 取り込んだ各行 | 転送元・転送先・正規表現無効・301が対応表と一致する |
| 同一サイトへの転送 | 旧URLの最初の応答が301。転送先の実URLは200で、多段転送がない |
| 外部サイトへの転送 | Locationが指定したHTTPS URLと一致する。転送先の存在は別途確認する |
| 今回追加したルールの停止 | 旧URLからの転送が止まる。旧ページの200/404は停止とは別に確認する |
隔離環境では説明用2行のURLを専用の試験パスへ置き換え、上の条件を実HTTPで確認しました。
外部転送先には自動でアクセスせず、Locationの比較までを検証範囲としています。
Locationは同一サイトの相対URLで返ることもあります。
相対URLなら旧URLを基準に解決して比較します。
転送先は実際のパーマリンクを使い、固定ページに投稿用の?p=IDを流用して追加の正規URL転送を発生させないようにします。
転送先・対象外・ループを確認する
登録後は旧URLの最初の応答が意図したステータスとLocationになり、新URLが正常表示されることを確認します。
転送の多段化、自己転送、存在しないページへの集約も確認してください。
ログイン、管理画面、REST API、画像URLなど、対象外URLが巻き込まれていないことも調べます。
curl -I 'https://example.com/old-post/'
curl -IL --max-redirs 5 'https://example.com/old-post/'curlの例はヘッダー確認用です。
HEADとGETで応答が異なる環境では、ブラウザでも確認します。
問題があれば今回追加したルールだけを停止し、保存した設定と比較します。
301はブラウザ等にキャッシュされる場合があるため、ルールを戻しただけで全利用者のキャッシュが即時消えるとは限りません。
取り込みで既存ルールを更新した場合は、そのルールを停止するだけでは変更前の転送先や条件に戻りません。
退避した設定と照合し、変更した既存ルールを元の内容へ戻したうえで、旧URLの応答を確認してください。
プラグインが動作する前にWebサーバーが処理する転送は、別途サーバー設定の確認が必要です。
Redirection 5.10.1の隔離環境で説明用CSVの形式を読み込み、転送と追加ルールの停止を確認しました。
本番サイトの転送設定やCSVインポートは実行していません。
管理画面でのインポート操作、重複時の更新・復元、利用者の実際の移転先は、この検証に含めていません。



