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

CDN:オリジンURLの書き換え

最終更新日:Jan 24, 2024

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

シナリオ

オリジンサーバー上のリソースが再配置されると、リソースのURLが変更されます。 ユーザーリクエストが元のURLを使用する場合、Alibaba Cloud CDNはリクエストを新しいURLにリダイレクトできるようにURLを書き換える必要があります。

たとえば、イメージファイルは /download /ディレクトリから /image /ディレクトリに移動されます。

制御ポリシー機能の動作

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

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

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

使用上の注意

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

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

  • Back-to-origin URL Rewrite機能は、キャッシュページのAccess URL Rewrite機能とは異なります。 アクセスURL書き換え機能は、コンテンツをユーザーに配信し、Alibaba Cloud CDNの内部サービスに影響を与え、キャッシュキーを書き換えます。 Back-to-origin URL Rewrite機能は、オリジンサーバーと通信するPOPで機能します。 Alibaba Cloud CDNの内部サービスやキャッシュキーの書き換えには影響しません。

  • オリジンURL書き換えルールのFlagパラメーターを設定してブレークを強化すると、パラメーターの書き換え設定が [パラメーターを無視] 機能の設定と競合する可能性があります。 パラメーターを無視するには、指定したドメイン名の左側のナビゲーションツリーで [ドメイン名] > [パフォーマンスの最適化] を選択します。 同じドメイン名に対して上記の機能を設定する場合は、機能が互いに競合しないようにしてください。

オリジン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パラメーターを書き換えることができます。

    ブレークを高める

    • 複数の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 rewriteタブにリストされている他のURL書き換えルールに対してリクエストを照合し続けます。

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

    書き直されるパス

    ^/hello.jpg$

    ターゲットパス

    /image/hello.jpg

    フラグ

    break

    期待される結果

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

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

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

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

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

    書き直されるパス

    ^(.*)$

    説明

    ^(.*)$は任意の文字に一致し、括弧 () のペアはグループを表します。 ターゲットパスで $1を使用して、グループ内の変数を呼び出すことができます。

    ターゲットパス

    /image$1

    説明

    $1は、最初の特殊な置換パターンです。これは、正規表現の最初の括弧 () のペアの式と一致するコンテンツを表します。 $2は2番目の特殊な置換パターンで、2番目の括弧 () の式に一致するコンテンツを表します。 $nは、n番目の特別な置換パターンを表す。

    フラグ

    break

    期待される結果

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

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

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

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

    システムは、Back-to-origin URL rewriteタブにリストされている他の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

    システムは、Back-to-origin URL rewriteタブにリストされている他の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に書き換えられます。 他のルールはスキップされます。