リダイレクト

リダイレクトルールの管理は、特に、時間の経過と共に変更または削除された受信リンクを失いたくない場合、web アプリケーションの一般的な要件です。

以下では、を使用して、クラウドインフラストラクチャプロジェクト上のAdobe Commerceでリダイレクトルールを管理する方法を示します routes.yaml 設定ファイル。 このトピックで説明したリダイレクトメソッドが機能しない場合は、キャッシュヘッダーを使用して同じ操作を実行できます。

NOTE
次のルート設定例では、プレースホルダーを含むルートテンプレートを使用します。 この {default} プレースホルダーは、サイトに設定されたデフォルトのドメインを表します。 プロジェクトに複数のドメインがある場合は、を使用します {all} デフォルトドメインとすべてのエイリアスのルーティングを設定するためのプレースホルダー。 参照: ルートの設定.

Pro 環境のアップデート

WARNING
一部 Pro プロジェクト でルート設定を更新するためにサポートチケットを必要とする routes.yaml のファイルと cron 設定 .magento.app.yaml ファイル。 Adobe環境で YAML 設定ファイルを更新およびテストしたあと、変更内容をステージング環境にデプロイすることをお勧めします。 再デプロイ後に変更がステージングサイトに適用されず、ログに関連するエラーメッセージがない場合は、次のようになります Adobe Commerce サポートチケットを送信 試行された設定変更を説明します。 更新された YAML 設定ファイルをチケットに含めます。
WARNING
クラウドインフラストラクチャプロジェクトのAdobe Commerceの場合、で多数の非正規表現リダイレクトおよび書き換えを設定する routes.yaml ファイルは、パフォーマンスの問題を引き起こす可能性があります。 次の場合 routes.yaml ファイルは 32 KB 以上で、非正規表現のリダイレクトと Fastly への書き換えをオフロードします。 参照: 非正規表現のオフロードにより、Nginx (ルート)ではなく Fastly にリダイレクトされる が含まれる Adobe Commerceヘルプセンター.

ルート全体リダイレクト

ルート全体のリダイレクトを使用すると、 routes.yaml ファイル。 例えば、apex ドメインからにリダイレクトできます www サブドメインを次のように設定します。

http://{default}/:
    type: redirect
    to: http://www.{default}/

部分的なルート リダイレクト

が含まれる .magento/routes.yaml ファイル。パターン一致に基づいて、既存のルートに部分的なリダイレクトルールを追加できます。

http://{default}/:
    redirects:
        expires: 1d
        paths:
          "/from": { to: "http://example.com/" }
          "/regexp/(.*)/matching": { to: "http://example.com/$1", regexp: true }

部分リダイレクトは、アプリケーションから直接提供されるルートを含む、あらゆるタイプのルートで機能します。

では、2 つのキーを使用できます。 redirects:

  • expires- ブラウザーでリダイレクトをキャッシュする時間を指定します(オプション)。 有効な値の例を次に示します 3600s, 1d, 2w, 3m.

  • パス – 部分ルートリダイレクトルールの設定を指定する 1 つ以上のキーと値のペア。

    各リダイレクトルールでは、キーはリダイレクトのリクエストパスをフィルタリングするための式です。 値は、リダイレクトのターゲット先とリダイレクトを処理するためのオプションを指定するオブジェクトです。

    value オブジェクトには、次のプロパティがあります。

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
    プロパティ 説明
    to 必須。リダイレクトルールのターゲット先を指定する、部分的な絶対パス、プロトコルとホストを含む URL、またはパターンです。
    regexp (オプション、デフォルトは) false. パス キーを PCRE 正規表現として解釈するかどうかを指定します。
    prefix リダイレクトをパスとその子の両方に適用するか、パス自体に適用するかを指定します。 デフォルトは true. 次の場合、この値はサポートされません。 regexp 等しい true.
    append_suffix リダイレクトでサフィックスを引き継ぐかどうかを決定します。 デフォルトは true. 次の場合、この値はサポートされません regexp キー: true または* (該当する場合) prefix キー: false.
    code HTTP ステータスコードを指定します。 有効なステータスコードは次のとおりです 301 (完全に移動), 302, 307、および 308. デフォルトは 302.
    expires オプションで、ブラウザーでリダイレクトをキャッシュする時間を指定します。 デフォルトは expires の直下に定義された値 redirects 重要ですが、このレベルでは、個々の部分リダイレクトのキャッシュの有効期限を微調整できます。

部分的なルートリダイレクトの例

次の例は、部分的なルート リダイレクトを routes.yaml 各種を使用したファイル paths 設定オプション。

正規表現のパターンマッチング

正規表現に基づいてリダイレクトリクエストを設定するには、次の形式を使用します。

http://{default}/:
    type: upstream
    redirects:
    paths:
        "/regexp/(.*)/match": { to: "http://example.com/$1", regexp: true }

この設定では、正規表現に対してリクエストパスがフィルタリングされ、一致するリクエストがにリダイレクトされます https://example.com. 例えば、へのリクエストです。 https://example.com/regexp/a/b/c/match はにリダイレクトされます https://example.com/a/b/c.

プレフィックスのパターンマッチング

次の形式を使用して、指定した接頭辞パターンで始まるパスのリダイレクトリクエストを設定します。

http://{default}/:
    type: upstream
    redirects:
    paths:
        "/from": { to: "https://{default}/to", prefix: true }

この設定は次のように動作します。

  • パターンに一致するリクエストをリダイレクトします /from パスに追加します http://{default}/to.

  • パターンに一致するリクエストをリダイレクトします /from/another/path 対象: https://{default}/to/another/path.

  • 変更した場合 prefix プロパティ先 false、に一致するリクエスト /from パターン リダイレクトをトリガーしますが、に一致するリクエストです /from/another/path パターンが存在しない。

サフィックスパターンのマッチング

次の形式を使用して、リクエストのパスサフィックスをターゲット宛先に追加するリダイレクト要求を設定します。

http://{default}/:
    type: upstream
    redirects:
    paths: "/from": { to: "https://{default}/to", append_suffix: false }

この設定は次のように動作します。

  • パターンに一致するリクエストをリダイレクトします /from/path/suffix パスに追加します https://{default}/to.

  • 変更した場合 append_suffix プロパティ先 true、次に一致するリクエスト /from/path/suffix パスにリダイレクト https://{default}/to/path/suffix.

パス固有のキャッシュ設定

次の形式を使用して、特定のパスからのリダイレクトをキャッシュする時間をカスタマイズします。

http://{default}/:
    type: upstream
    redirects:
    expires: 1d
    paths:
        "/from": { to: "https://example.com/" }
        "/here": { to: "https://example.com/there", expires: "2w" }

この設定は次のように動作します。

  • 最初のパスからリダイレクト(/from)は 1 日間キャッシュされます。

  • 2 番目のパスからリダイレクトする(/here)は 2 週間キャッシュされます。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26