リダイレクト
リダイレクトルールの管理は、特に、時間の経過と共に変更または削除された受信リンクを失いたくない場合、web アプリケーションの一般的な要件です。
以下では、を使用して、クラウドインフラストラクチャプロジェクト上のAdobe Commerceでリダイレクトルールを管理する方法を示します routes.yaml
設定ファイル。 このトピックで説明したリダイレクトメソッドが機能しない場合は、キャッシュヘッダーを使用して同じ操作を実行できます。
{default}
プレースホルダーは、サイトに設定されたデフォルトのドメインを表します。 プロジェクトに複数のドメインがある場合は、を使用します {all}
デフォルトドメインとすべてのエイリアスのルーティングを設定するためのプレースホルダー。 参照: ルートの設定.Pro 環境のアップデート
routes.yaml
のファイルと cron 設定 .magento.app.yaml
ファイル。 Adobe環境で YAML 設定ファイルを更新およびテストしたあと、変更内容をステージング環境にデプロイすることをお勧めします。 再デプロイ後に変更がステージングサイトに適用されず、ログに関連するエラーメッセージがない場合は、次のようになります が Adobe Commerce サポートチケットを送信 試行された設定変更を説明します。 更新された YAML 設定ファイルをチケットに含めます。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 週間キャッシュされます。