リダイレクト
リダイレクトルールの管理は、特に、時間の経過と共に変更または削除された受信リンクを失いたくない場合、web アプリケーションの一般的な要件です。
以下の例に、routes.yaml 設定ファイルを使用して、クラウドインフラストラクチャプロジェクト上のAdobe Commerceでリダイレクトルールを管理する方法を示します。 このトピックで説明したリダイレクトメソッドが機能しない場合は、キャッシュヘッダーを使用して同じ操作を実行できます。
{default} のプレースホルダーは、サイトに設定されたデフォルトのドメインを表します。 プロジェクトに複数のドメインがある場合は、{all} プレースホルダーを使用して、デフォルトドメインとすべてのエイリアスのルーティングを設定します。 ルートの設定 を参照してください。Pro 環境のアップデート
routes.yaml ファイルのルート設定と .magento.app.yaml ファイルの cron 設定を更新するために、サポートチケットが必要です。 Adobeでは、統合環境で YAML 設定ファイルを更新およびテストした後、変更をステージング環境にデプロイすることをお勧めします。 再デプロイ後に変更がステージングサイトに適用されず、関連するエラーメッセージがログに存在しない場合は、必須 Adobe Commerce サポートチケットを送信 すると、試みた設定変更に関する説明が表示されます。 更新された YAML 設定ファイルをチケットに含めます。routes.yaml ファイルに多数の非正規表現リダイレクトや書き換えを設定すると、パフォーマンスの問題が発生する可能性があります。 routes.yaml ファイルが 32 KB 以上の場合は、非正規表現のリダイレクトと書き換えを Fastly にオフロードします。 2}Adobe Commerce ヘルプセンター の Nginx (ルート)ではなく Fastly への非正規表現リダイレクトのオフロード を参照してください。ルート全体リダイレクト
ルート全体のリダイレクトを使用すると、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 }
部分リダイレクトは、アプリケーションから直接提供されるルートを含む、あらゆるタイプのルートで機能します。
redirects では、次の 2 つのキーを使用できます。
-
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の場合、この値はサポートされません。codeHTTP ステータスコードを指定します。 有効な状態コードは、 301(完全に移動) 、302、307、および308です。 デフォルトは302です。expiresオプションで、ブラウザーでリダイレクトをキャッシュする時間を指定します。 デフォルトは、 redirectsキーの直下に定義されたexpires値ですが、このレベルでは、個々の部分リダイレクトのキャッシュの有効期限を微調整できます。
部分的なルートリダイレクトの例
次の例は、様々な paths 設定オプションを使用して routes.yaml ファイルに部分ルートリダイレクトを指定する方法を示しています。
正規表現のパターンマッチング
正規表現に基づいてリダイレクトリクエストを設定するには、次の形式を使用します。
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に変更すると、に一致する要求はパスhttps://{default}/to/path/suffixにリダイレクト/from/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 週間キャッシュされます。