このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

オリジンURLの書き換え

更新日時2025-01-15 08:24

Alibaba Cloud CDNでは、オリジンURLを書き換えることができます。 URL書き換え機能は、Alibaba Cloud CDNの内部サービスやキャッシュキーに影響を与えることなく、ポイントオブプレゼンス (POP) で機能します。

制御ポリシー機能の動作

POPは、URL書き換えルールに基づいて、オリジンサーバー上のリクエストされたリソースのURLに対してオリジンURLを照合します。 次に、特定のパラメーターを持つリクエストがオリジンサーバーにリダイレクトされます。

  • 書き換えルールでは、FlagパラメーターをNoneまたはBreakに設定すると、URL内のリソースパスのみが書き換えられます。1

  • Flagパラメーターを強化するように設定すると、リソースパスとクエリ文字列が書き換えられます。2

  • ドメイン名ごとに最大50個のback-to-origin URL の書き換えルールを設定できます。

  • システムは、[オリジンURLの書き換え] タブにリストされている書き換えルールを上から下に順番に実行します。 ルールの順序を変更すると、書き換えの結果が変わる場合があります。

  • back-to-origin URL の書き換え は、ドメイン名 > パフォーマンスの最適化[パラメーターを無視] 機能の設定と競合する場合があります。 機能が互いに競合しないようにしてください。

アクセスURLの書き換えとオリジンURLの書き換えの違い

特徴

説明

結果

シナリオ

特徴

説明

結果

シナリオ

アクセスURLの書き換え

クライアントがアクセスするURLが書き換えられ、オリジンURLも変更されます。

クライアントに表示されるURLは変更され、実際にアクセスされるURLとは異なります。

この機能は、古いドメイン名のURLを新しいドメイン名にマッピングしたり、モバイルデバイスやPCに異なるURLを提供したりするためによく使用されます。

例: クライアントがold.example.com/helloにアクセスすると、アクセスURLをnew.example.com/helloに書き換えます。

オリジンURLの書き換え

オリジンURLは書き換えられ、アクセスURLは変更されません。

クライアントに表示されるURLは変更されず、実際にアクセスされたURLと同じです。

この機能は通常、オリジンサーバーの実際のURLを非表示にして、オリジンサーバーに関する情報を保護するために使用されます。 この機能を使用してURLをマップし、POPが異なるオリジンディレクトリからコンテンツを取得できるようにすることもできます。

例: クライアントがcdn.example.com/helloにアクセスするとき、オリジンURLをorigin.example.com/source/helloに書き換えます。

アクセスURLの書き換え

image
  1. クライアントはPOPへの要求を開始する。 リクエストURLはold.example.com/helloです。

  2. POPは、リクエストを受信した後、HTTPステータスコード302とともに返されるレスポンスのHTTP Locationヘッダに新しいURLを追加し、アクセスURL書き換えルールに基づいてリクエストURLをnew.example.com/helloに書き換える。

  3. クライアントが応答を受信し、HTTPステータスコードが302した後、クライアントは新しいURLへの要求を開始します。

  4. POPはキャッシュをチェックする。 書き換えられたURLに対応するコンテンツがキャッシュに存在する場合、POPはコンテンツをクライアントに返します。 そうでない場合、POPはオリジン・サーバへの要求を開始する。 リクエストURLはnew.example.com/helloされ、書き換えられます。

  5. オリジンサーバは、要求を受信し、要求されたコンテンツをPOPに返す。

  6. POPは、要求されたコンテンツをキャッシュし、要求されたコンテンツをクライアントに返す。

オリジンURLの書き換え

image
  1. クライアントはPOPへの要求を開始する。 リクエストURLはcdn.example.com/files/hello.txtです。

  2. POPが要求を受信した後、POPはキャッシュをチェックする。 リクエストURLに対応するコンテンツがキャッシュに存在する場合、POPはコンテンツをクライアントに返します。 そうでない場合、POPは、オリジンURL書き換え規則に基づいてオリジンURLをorigin.example.com/secret/files/hello.txtに書き換え、オリジンサーバへの要求を開始する。

  3. オリジンサーバは、要求を受信し、要求されたコンテンツをPOPに返す。

  4. POPは、要求されたコンテンツをキャッシュし、要求されたコンテンツをクライアントに返す。

オリジンURL書き換えルールの作成

  1. Alibaba Cloud CDNコンソール にログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名をクリックします。

  3. [ドメイン名] ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。

  4. ドメイン名の左側のナビゲーションツリーで、Back-to-Origin 設定をクリックします。

  5. back-to-origin URL の書き換えタブをクリックします。

  6. 追加をクリックします。

  7. 書き換えのパス変更後のパス 、および フラグ パラメーターを設定します。 下表にパラメーターを示します。

    改写回源URI

    パラメーター

    説明

    パラメーター

    説明

    書き換えのパス

    ^/hello$

    スラッシュ (/) で始まるURLを入力します。 URLにhttp:// またはドメイン名を含めることはできません。 Perl互換正規表現 (PCRE) を使用する必要があります。

    変更後のパス

    /hello/test

    スラッシュ (/) で始まるURLを入力します。 URLにhttp:// またはドメイン名を含めることはできません。 PCREがサポートされています。

    フラグ

    なし

    複数のURL書き換えルールを設定した場合、Alibaba Cloud CDNはリクエストを上から下の順にルールと照合します。

    break

    • 複数のURL書き換えルールを設定し、現在のルールが一致する場合、他のルールはスキップされます。

    • このオプションは、URLのリソースパスのみを書き換えます。 URLパラメーターは変更されません。 パラメーター書き換え機能を使用して、URLパラメーターを書き換えることができます。back-to-origin URL の書き換え

    ブレークを高める

    • 複数のURL書き換えルールを設定し、現在のルールが一致する場合、他のルールはスキップされます。

    • breakと比較して、enhance breakはURLパラメーターも書き換えます。 ただし、パラメーターの書き換え設定とパラメーターの書き換えの設定が競合する場合があります。 両方の機能を有効にする場合は、設定が互いに競合しないようにしてください。

  8. OKをクリックしてルールを適用します。

    新しい書き換えルールは、back-to-origin URL の書き換え タブに表示されます。 書き換えルールの [操作] 列の 変更 または 削除 をクリックすると、書き換えルールを変更または削除できます。

設定例

  • 例1: フラグがNoneに設定されているルールを適用します。

    書き直されるパス

    ^/hello$

    ターゲットパス

    /index.html

    フラグ

    なし

    期待される結果

    元の要求: http://example.com/hello

    最終リクエスト: http://example.com/index.html

    システムは、back-to-origin URL の書き換え タブにリストされている他のURL書き換えルールに対してリクエストを照合し続けます。

  • 例2: フラグがBreakに設定されているルールを適用します。

    書き直されるパス

    ^/hello.jpg$

    ターゲットパス

    /image/hello.jpg

    フラグ

    break

    期待される結果

    元の要求: http://example.com/hello.jpg

    最終リクエスト: http://example.com/image/hello.jpg

    システムは、back-to-origin URL の書き換え タブにリストされている他のURL書き換えルールに対するリクエストの照合を停止します。

  • 例3: ブレークを強化するようにフラグが設定されているルールを適用します。

    書き直されるパス

    ^/hello.jpg?code=123 $

    ターゲットパス

    /image/hello.jpg?code=321

    フラグ

    ブレークを高める

    期待される結果

    元の要求: http://example.com/hello.jpg?code=123

    最終リクエスト: http://example.com/image/hello.jpg?code=321

    システムは、back-to-origin URL の書き換え タブにリストされている他のURL書き換えルールに対するリクエストの照合を停止します。

  • 例4: ファイル名が変数の場合、ルートディレクトリにURLプレフィックスを追加する

    ルートディレクトリ内のすべてのファイルのURLに /imageパスを追加します。 たとえば、URLの /xxxを /image/xxxに書き換えます。 この例では、xxxはhello.jpgやhello.htmlなどのファイル名です。

    書き直されるパス

    ^(.*)$

    説明

    ^ は、文字列の先頭からの文字列と一致します。 (.*) はグループで、 改行以外の文字に一致します。 * は、前の文字またはグループに0回以上一致します。 ターゲットパスで $1を使用して、グループの変数コンテンツを参照できます。 $は、文字列の末尾に文字列を一致させます。 ^(.*)$ は、文字列の最初から最後までの文字列と一致します。この文字列には、改行以外の文字を含めることができ、一致したコンテンツをグループにキャプチャします。 たとえば、文字列 "hello world" の場合、^(.*)$ は文字列全体と一致し、"hello world" を最初のグループにキャプチャします。

    ターゲットパス

    /image$1

    説明

    /imageは文字列 "/image" と一致します。 $1は最初のグループのコンテンツを参照し、$2は2番目のグループのコンテンツを参照します。 /image$1は、最初のグループのコンテンツが続く文字列 "/image" と一致します。 たとえば、最初のグループのコンテンツが "abc" の場合、/image$1は文字列 "/imageabc" と一致します。 $1は、リテラルの "$1" ではなく、グループのコンテンツを参照することに注意してください。 リテラル "$1" と一致させたい場合は、エスケープ文字列 "\$1" を使用します。

    フラグ

    break

    期待される結果

    • 元の要求: http://example.com/hello.jpg

      最終リクエスト: http://example.com/image/hello.jpg

    • 元の要求: http://example.com/hello.html

      最終リクエスト: http://example.com/image/hello.html

    システムは、[オリジンURLの書き換え] タブにリストされている他のURL書き換えルールに対するリクエストの照合を停止します。

  • 例5: ファイル名が変数の場合、特定のディレクトリにURLプレフィックスを追加します。

    /liveディレクトリ内のすべてのファイルのURLに /imageパスを追加します。 たとえば、URLの /live/xxxを /image/live/xxxに書き換えます。 この例では、xxxはhello.jpgやhello.htmlなどのファイル名です。

    書き直されるパス

    ^/live/(.*)$

    ターゲットパス

    /画像 /ライブ /$1

    フラグ

    break

    期待される結果

    • 元の要求: http://example.com/live/hello.jpg

      最終リクエスト: http://example.com/image/live/hello.jpg

    • 元の要求: http://example.com/live/hello.html

      最終リクエスト: http://example.com/image/live/hello.html

    システムは、[オリジンURLの書き換え] タブにリストされている他のURL書き換えルールに対するリクエストの照合を停止します。

  • 例6: 複数のルールが設定されている場合、フラグがNoneに設定されているルールのみを適用します。

    次の図に示すように、2つのURL書き換えルールを作成します。配置

    期待される結果:

    • 元の要求: http://example.com/image_01.png

    • 最終リクエスト: http://example.com/image/image_02.png

      説明

      リクエストは最初のルールと一致し、オリジンURLは http://example.com/image_02.png に書き換えられます。 次に、要求は第2のルールと一致し、オリジンURLは http://example.com/image/image_02.png に書き換えられる。

  • 例7: 複数のルールが設定されている場合、フラグがBreakに設定されているルールを適用します。

    次の図に示すように、2つのURL書き換えルールを作成します。配置

    期待される結果:

    • 元の要求: http://example.com/image_01.png

    • 最終リクエスト: http://example.com/image_02.png

      説明

      リクエストは最初のルールと一致し、リクエストURLは http://example.com/image_02.png に書き換えられます。 他のルールはスキップされます。

  • 目次 (1, M)
  • 制御ポリシー機能の動作
  • アクセスURLの書き換えとオリジンURLの書き換えの違い
  • アクセスURLの書き換え
  • オリジンURLの書き換え
  • オリジンURL書き換えルールの作成
  • 設定例
  • 例1: フラグがNoneに設定されているルールを適用します。
  • 例2: フラグがBreakに設定されているルールを適用します。
  • 例3: ブレークを強化するようにフラグが設定されているルールを適用します。
  • 例4: ファイル名が変数の場合、ルートディレクトリにURLプレフィックスを追加する
  • 例5: ファイル名が変数の場合、特定のディレクトリにURLプレフィックスを追加します。
  • 例6: 複数のルールが設定されている場合、フラグがNoneに設定されているルールのみを適用します。
  • 例7: 複数のルールが設定されている場合、フラグがBreakに設定されているルールを適用します。
フィードバック