Path Redirect Import
DrupalのMigrate APIを使用して、CSVファイル経由でURLリダイレクトの一括インポートとエクスポートを可能にします。
path_redirect_import
インストール
composer require 'drupal/path_redirect_import:^2.1'
composer require 'drupal/path_redirect_import:^2.0'
概要
Path Redirect Importは、Drupalで大量のURLリダイレクトを管理するための効率的なソリューションを提供します。DrupalのMigrate APIを基盤として構築されており、サイト管理者がCSVファイルからリダイレクトを一括インポートしたり、バックアップや移行のために既存のリダイレクトをエクスポートしたりすることができます。
このモジュールはRedirectモジュールとシームレスに統合され、リダイレクト管理ページに追加のタブとして表示されます。内部パス、外部URL、<front>を使用したホームページリダイレクト、クエリパラメータ付きURLなど、さまざまなリダイレクトシナリオをサポートしています。また、コマンドライン操作用のDrushコマンドも提供しており、自動化されたデプロイメントワークフローや大規模なリダイレクト管理に適しています。
CSVバリデーションにより、インポート前にデータの整合性を確認し、適切なエンコーディング、必須フィールド、ソースとデスティネーションが同一である循環リダイレクトの防止をチェックします。
Features
- エンコーディング、空値、循環リダイレクト防止のバリデーション付きでCSVファイルからURLリダイレクトを一括インポート
- バックアップまたは移行用にすべての既存リダイレクトをダウンロード可能なCSVファイルに一括エクスポート
- 内部パス、外部URL、ホームページリダイレクト用の<front>などの特殊パスをサポート
- ソースパス内のURLエンコードされた文字とクエリパラメータを処理
- 言語コード(言語非依存の場合はund)をサポートした言語対応リダイレクト
- リダイレクトごとに設定可能なHTTPステータスコード(301、302など)
- タイムアウトを防ぐための大規模データセット向けバッチ処理
- 堅牢なデータ処理のためのDrupal Migrate APIとの統合
- コマンドラインでのインポート・エクスポート操作用Drushコマンド
- CSVファイルで定義されたリダイレクトを削除する削除モード
Use Cases
URLリダイレクト付きサイト移行
古いサイトから新しいDrupalサイトにコンテンツを移行する際、URLがよく変更されます。古いURLから新しいURLへのマッピングCSVを作成し、一括インポートしてSEOランキングを維持し、訪問者のリンク切れを防ぎます。
URL構造の再編成
サイトコンテンツを再編成する際(例: ブログ投稿を/blog/post-titleから/articles/post-titleに移動)、現在のリダイレクトをエクスポートし、古いものから新しいものへのマッピングCSVを準備してインポートすることで、既存のすべてのリンクが引き続き機能することを保証します。
マーケティングキャンペーンのバニティURL
マーケティングキャンペーン用の短く覚えやすいURLを作成します(例: /saleを/products/summer-sale-2024にリダイレクト)。キャンペーンURLを含むCSVを準備し、ローンチ前にインポートします。
リダイレクトのバックアップと復元
サイトバックアップ手順の一環として、定期的にリダイレクトをCSVファイルにエクスポートします。リダイレクトが誤って削除または破損した場合、バックアップCSVをインポートして復元できます。
マルチ環境間のリダイレクト同期
本番環境からリダイレクトをエクスポートし、必要に応じて調整してから、ステージングまたは開発環境にインポートし、環境間で一貫したリダイレクト動作を確保します。
リダイレクトの一括クリーンアップ
すべてのリダイレクトをエクスポートし、CSV内の古くなったものを特定してから、削除モードを使用して存在しなくなったページを指す古いリダイレクトを削除します。
多言語サイトのリダイレクト
CSVのlanguageカラムを使用して言語固有のリダイレクトを管理します。言語非依存の動作には'und'を設定するか、言語固有のリダイレクトには特定の言語コード(en、fr、deなど)を設定します。
Tips
- CSVのソースパスには先頭スラッシュを付けないでください - '/old-page'ではなく'old-page'を使用
- ホームページにリダイレクトするにはデスティネーションに<front>を使用
- ソースパスでクエリパラメータがサポートされています(例: old-page?param=value)
- 外部URLはデスティネーションとして完全にサポートされています(例: https://example.com)
- 指定されていない場合、301ステータスコードがデフォルトで、永続的なリダイレクトを示します
- 一時的なリダイレクト(例: メンテナンス中)には302ステータスコードを使用
- 大規模なインポートはPHPタイムアウトの問題を防ぐためにバッチ処理されます
- エクスポートされたファイルは一時的でcronによって削除されます - 速やかにダウンロードしてください
- 削除オプションを使用する場合、リダイレクトが削除される前に確認ページが表示されます
- モジュールはMigrateの更新機能を再利用するため、同じCSVを再インポートすると重複を作成する代わりに既存のリダイレクトが更新されます
Technical Details
Admin Pages 2
/admin/config/search/redirect/migrate
CSVファイルからURLリダイレクトをインポートするか、CSVデータに基づいて既存のリダイレクトを削除します。フォームは処理前にCSVファイルの適切なヘッダー、UTF-8エンコーディング、空値、循環リダイレクトをバリデーションします。
/admin/config/search/redirect/export
サイトからすべての既存URLリダイレクトをダウンロード可能なCSVファイルにエクスポートします。エクスポートされるファイルはインポートと同じフォーマットに従い、バックアップ、別サイトへの移行、編集して再インポートに適しています。
Drush Commands 2
drush path_redirect_import:import <file>
指定されたCSVファイルからリダイレクトをインポートします。ファイルはヘッダー: source, destination, language, status_code を持つ標準フォーマットに従う必要があります。
drush path_redirect_import:export
すべての既存リダイレクトをCSVファイルにエクスポートします。ファイルはタイムスタンプベースのファイル名でpublicファイルディレクトリのpath_redirect_import/に保存されます。
Troubleshooting 7
CSVファイルの最初の行に正確にこれらのヘッダーがあることを確認してください: source,destination,language,status_code(大文字小文字を区別、スペースなし)
CSVファイルをUTF-8エンコーディングで保存してください。Excelでは「名前を付けて保存」を使用し、「CSV UTF-8(カンマ区切り)」を選択します。他のエディタでは、BOMなしのUTF-8として保存されていることを確認してください。
ソースとデスティネーションが同一の行がCSVにないかチェックしてください(先頭スラッシュの比較を含む)。リダイレクトは自分自身を指すことはできません。
すべての行の4つのカラムすべてに値があることを確認してください。言語非依存のリダイレクトには'und'を、有効なステータスコード(301、302など)を使用してください。
インポート後にDrupalのキャッシュをクリアしてください。また、CSVのソースパスに先頭スラッシュがないことを確認してください(/source-pathではなくsource-path)。
エクスポートする既存のリダイレクトがあることを確認してください。システムにリダイレクトがない場合、モジュールはエラーメッセージを表示します。
Migrate Toolsモジュールが有効になっていることを確認してください。DrushコマンドはMigrate Toolsがインストールされている場合にのみ条件付きで登録されます。