Path Redirect Import

DrupalのMigrate APIを使用して、CSVファイル経由でURLリダイレクトの一括インポートとエクスポートを可能にします。

path_redirect_import
15,967 sites
26
drupal.org

インストール

Drupal 11, 10 v2.1.1
composer require 'drupal/path_redirect_import:^2.1'
Drupal 9 v2.0.9
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
「Header line should follow the following labels」エラーでインポートが失敗する

CSVファイルの最初の行に正確にこれらのヘッダーがあることを確認してください: source,destination,language,status_code(大文字小文字を区別、スペースなし)

UTF-8エンコーディングエラーでインポートが失敗する

CSVファイルをUTF-8エンコーディングで保存してください。Excelでは「名前を付けて保存」を使用し、「CSV UTF-8(カンマ区切り)」を選択します。他のエディタでは、BOMなしのUTF-8として保存されていることを確認してください。

「same URL destination as source」エラーでインポートが失敗する

ソースとデスティネーションが同一の行がCSVにないかチェックしてください(先頭スラッシュの比較を含む)。リダイレクトは自分自身を指すことはできません。

空/null値エラーでインポートが失敗する

すべての行の4つのカラムすべてに値があることを確認してください。言語非依存のリダイレクトには'und'を、有効なステータスコード(301、302など)を使用してください。

インポート後にリダイレクトが機能しない

インポート後にDrupalのキャッシュをクリアしてください。また、CSVのソースパスに先頭スラッシュがないことを確認してください(/source-pathではなくsource-path)。

エクスポートボタンが何も動作しない

エクスポートする既存のリダイレクトがあることを確認してください。システムにリダイレクトがない場合、モジュールはエラーメッセージを表示します。

Drushコマンドが利用できない

Migrate Toolsモジュールが有効になっていることを確認してください。DrushコマンドはMigrate Toolsがインストールされている場合にのみ条件付きで登録されます。