リダイレクト
リダイレクトルールの管理は、web アプリケーションの一般的な要件です。特に、時間の経過とともに変更または削除された受信リンクを失いたくない場合に必要です。
次に、routes.yaml設定ファイルを使用して、Adobe Commerce on cloud infrastructure プロジェクトのリダイレクトルールを管理する方法を示します。 このトピックで説明したリダイレクト方法が機能しない場合は、キャッシュヘッダーを使用して同じことを行うことができます。
{default} プレースホルダーは、サイトに設定された既定のドメインを表します。 プロジェクトに複数のドメインがある場合は、{all} プレースホルダーを使用して、デフォルトドメインとすべてのエイリアスのルーティングを設定します。 ルートの設定を参照してください。Pro環境へのアップデート
routes.yaml ファイルのルート設定と.magento.app.yaml ファイルのcron設定を更新するために、Adobe サポートの支援が必要です。 Adobeでは、まず統合環境でYAML設定の変更をすべて行って検証し、その後ステージング環境にデプロイすることをお勧めします。routes.yaml ファイルで多数の非regex リダイレクトと書き換えを設定すると、パフォーマンスの問題が発生する可能性があります。 routes.yaml ファイルが32 KB以上の場合は、正規表現でないリダイレクトをオフロードし、Fastlyに書き換えます。 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 }
部分リダイレクトは、アプリケーションが直接提供するルートを含む、あらゆるタイプのルートで機能します。
次の2つのキーをredirectsで使用できます。
-
有効期限 – オプション。ブラウザーでリダイレクトをキャッシュする時間を指定します。 有効な値の例には、
3600s、1d、2w、3mなどがあります。 -
paths – 部分ルート リダイレクト ルールの設定を指定する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に変更すると、/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週間キャッシュされます。