すべてのプロダクト
Search
ドキュメントセンター

CDN:オリジンパスの書き換え

最終更新日:Jan 05, 2026

Alibaba Cloud CDN では、オリジンパスの書き換えが可能です。URL 書き換え機能は POP (Point of Presence) 上で動作し、Alibaba Cloud CDN の内部サービスやキャッシュキーには影響しません。

仕組み

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

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

  • Flag パラメーターを enhance break に設定した場合、リソースパスとクエリ文字列が書き換えられます。2

注意事項

  • 各ドメイン名に対して、最大 50 個の back-to-origin Path の書き換え ルールを設定できます。

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

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

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

機能

影響範囲

クライアントエクスペリエンス

利用シーン

アクセス URL の書き換え

クライアントがアクセスする URL に影響します。また、POP がオリジンフェッチに使用する URL も変更します。

  • フラグが redirect に設定されている場合、クライアントはリダイレクトされた URL を使用して新しいリクエストを送信します。

  • フラグが break に設定されている場合、クライアントに表示される URL はアクセスした URL と同じで、変更されません。

一般的に、古いドメイン名から新しいドメイン名への URL の移行やマッピング、またはモバイルクライアントと PC クライアントに異なる URL を提供するために使用されます。

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

オリジンパスの書き換え

POP がオリジンフェッチに使用する URL に影響します。クライアントがアクセスする URL は変更されません。

クライアントに表示される URL はアクセスした URL と同じで、変更されません。

一般的に、オリジンサーバーの実際の URL 構造を隠してオリジンサーバー情報を保護するため、または URL マッピングを使用して CDN の POP が異なるオリジンディレクトリからコンテンツをフェッチできるようにするために使用されます。

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

アクセス URL の書き換え

image
  1. クライアントが POP にリクエストを送信します。リクエスト URL は old.example.com/hello です。

  2. POP はリクエストを受信後、アクセス URL 書き換えルールに基づいてリクエスト URL を new.example.com/hello に書き換えます。その後、POP は新しい URL を 302 応答の HTTP Location ヘッダーに含めます。

  3. クライアントは 302 応答を受信後、新しい URL に新しいリクエストを送信します。

  4. POP はキャッシュを確認します。書き換えられた URL のコンテンツがキャッシュされている場合、POP はそのコンテンツをクライアントに返します。キャッシュされていない場合、POP はオリジンサーバーにリクエストを送信します。リクエスト URL は書き換えられた URL、new.example.com/hello です。

  5. オリジンサーバーはリクエストを受信し、応答を POP に返します。

  6. POP は応答をキャッシュし、クライアントに返します。

オリジンパスの書き換え

image
  1. クライアントが POP にリクエストを送信します。リクエスト URL は cdn.example.com/files/hello.txt です。

  2. POP はリクエストを受信後、キャッシュを確認します。リクエスト URL のコンテンツがキャッシュされている場合、POP はそのコンテンツをクライアントに返します。キャッシュされていない場合、POP はオリジンパス書き換えルールに基づいてオリジンパスを origin.example.com/secret/files/hello.txt に書き換え、オリジンサーバーにリクエストを送信します。

  3. オリジンサーバーはリクエストを受信し、応答を POP に返します。

  4. POP は応答をキャッシュし、クライアントに返します。

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

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

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

  3. ドメイン名 ページで、対象のドメイン名を見つけ、操作 列の 管理 をクリックします。

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

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

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

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

    改写回源URI

    パラメーター

    説明

    書き換えのパス

    ^/hello$

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

    変更後のパス

    /hello/test

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

    フラグ

    None

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

    break

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

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

    enhance break

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

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

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

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

設定例

  • 例 1:フラグが None に設定されたルールを適用する

    書き換え元パス

    ^/hello$

    書き換え先パス

    /index.html

    フラグ

    None

    期待される結果

    元のリクエスト:http://example.com/hello

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

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

  • 例 2:フラグが Break に設定されたルールを適用する

    書き換え対象のパス

    ^/hello.jpg$

    書き換え先パス

    /image/hello.jpg

    フラグ

    break

    期待される結果

    元のリクエスト:http://example.com/hello.jpg

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

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

  • 例 3:フラグが enhance break に設定されたルールを適用する

    書き換えられるパス

    ^/hello.jpg?code=123$

    書き換え先パス

    /image/hello.jpg?code=321

    フラグ

    enhance break

    期待される結果

    元のリクエスト:http://example.com/hello.jpg?code=123

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

    システムは、back-to-origin Path の書き換え タブにリストされている他の 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 書き換えルールとの照合を停止します。

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

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

    書き換え元パス

    ^/live/(.*)$

    書き換え先パス

    /image/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 書き換えルールとの照合を停止します。

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

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

    期待される結果:

    • 元のリクエスト:http://example.com/image_01.png

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

      説明

      リクエストは最初のルールに一致し、オリジンパスは http://example.com/image_02.png に書き換えられます。その後、リクエストは 2 番目のルールに一致し、オリジンパスは 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 に書き換えられます。他のルールはスキップされます。