Alibaba Cloud Dynamic Content Delivery Network (DCDN) では、オリジンURIを書き換えることができます。 URI書き換え機能は、DCDNの内部サービスやキャッシュキーに影響を与えることなく、DCDNポイントオブプレゼンス (POP) に対して有効になります。 このトピックでは、オリジンURLの書き換えを設定する方法について説明します。
シナリオ
オリジンサーバー上のリソースが再配置されると、リソースのURIも変更されます。 ユーザーリクエストが元のURIを使用する場合、DCDNはリクエストを新しいURLにリダイレクトできるようにURLを書き換える必要があります。
たとえば、イメージファイルは /download /ディレクトリから /image /ディレクトリに移動されます。
制御ポリシー機能の動作
POPは、URI書き換えルールに基づいて、オリジンサーバー上のリクエストされたリソースのURIに対してリクエストURIを照合します。 次に、リクエストまたは特定のリクエストパラメーターがオリジンサーバーにリダイレクトされます。
書き換えルールでは、FlagパラメーターをNoneまたはBreakに設定すると、URL内のリソースパスのみが書き換えられます。
Flagパラメーターを強化するように設定すると、リソースパスとクエリ文字列が書き換えられます。
使用上の注意
ドメイン名ごとに最大50個のオリジンURI書き換えルールを設定できます。
システムは、Back-to-origin URL rewriteタブにリストされている書き換えルールを上から順に実行します。 ルールの順序を変更すると、書き換えの結果が変わる場合があります。
オリジンURI書き換え機能は、キャッシュページの書き換え機能とは異なります。 書き換え機能は、DCDN POPで有効になり、DCDNの内部サービスに影響を与え、キャッシュキーを書き換えます。 オリジンURI書き換え機能は、オリジンサーバーと通信するDCDN POPで機能し、DCDNの内部サービスやキャッシュキーの書き換えには影響しません。
URI書き換えルールのFlagパラメーターを設定してブレークを強化すると、パラメーターの書き換え設定とパラメーターのフィルタリング機能の設定が競合する可能性があります。 パラメーターをフィルター処理するには、DCDNコンソールの左側のナビゲーションウィンドウで を選択します。 同じドメイン名に2つの機能を設定する場合は、設定が競合しないようにしてください。 詳細については、「パラメーターフィルター処理」をご参照ください。
オリジンURI書き換えルールの作成
左側のナビゲーションウィンドウで、ドメイン名.
[ドメイン名] ページで、管理するドメイン名を見つけ、アクション 列の 設定 をクリックします。
ドメイン名の左側のナビゲーションツリーで、オリジンフェッチ.
をクリックし、URI書き換えタブをクリックします。
On theURI書き換えタブをクリックします。追加.
URI書き換えダイアログボックスで、元のURI、最終URI、およびフラグを設定します。 次の表に、パラメーターを示します。

パラメーター
例
説明
元のURI
^/hello$
URIを入力します。 URIはスラッシュ (/) で始まる必要があり、http:// またはドメイン名を含めることはできません。 URIにはPerl Compatible Regular Expressions (PCRE) を含める必要があります。
最終URI
/hello/test
URIを入力します。 URIはスラッシュ (/) で始まる必要があり、http:// またはドメイン名を含めることはできません。 PCREがサポートされています。
フラグ
なし
複数のURI書き換えルールを設定した場合、DCDNはリクエストを上から下の順にルールと照合します。
break
複数のURI書き換えルールを設定し、現在のルールが一致する場合、他のルールはスキップされます。
URI内のリソースパスのみを書き換えます。 URLパラメーターは変更されません。 パラメーター書き換え機能を使用して、URLパラメーターを書き換えることができます。
enhance_break
複数のURI書き換えルールを設定し、現在のルールが一致する場合、他のルールはスキップされます。
Breakと比較して、enhance breakはURLパラメーターを書き換えます。 ただし、パラメーターの書き換え設定は、back-to-originリクエストのURLパラメーターの書き換え機能に記載されている機能の設定と競合する場合があります。 両方の機能を有効にする場合は、設定が互いに競合しないようにしてください。
クリックOKルールを適用します。
書き換えルールを変更または削除するには、[URI書き換え] タブでルールを見つけ、[操作] 列の [変更] または [削除] をクリックします。
設定例
例1: フラグがNoneに設定されているルールを適用します。
オリジナルURI
^/hello$
最終URI
/index.html
フラグ
なし
期待される結果
元の要求:
http://aliyundoc.com/hello最終リクエスト:
http://aliyundoc.com/index.htmlシステムは、[URI書き換え] タブにリストされている他のURI書き換えルールに対して要求を照合し続けます。
例2: フラグがBreakに設定されているルールを適用します。
オリジナルURI
^/hello.jpg$
最終URI
/image/hello.jpg
フラグ
break
説明
元の要求:
http://example.com/hello.jpg最終リクエスト:
http://example.com/image/hello.jpgシステムは、[URI書き換え] タブにリストされている他のURI書き換えルールに対するリクエストの照合を停止します。
例3: ブレークを強化するようにフラグが設定されているルールを適用します。
オリジナルURI
^/hello.jpg?code=123 $
最終URI
/image/hello.jpg?code=321
フラグ
ブレークを高める
期待される結果
元の要求:
http://example.com/hello.jpg?code=123最終リクエスト:
http://example.com/image/hello.jpg?code=321システムは、[URI書き換え] タブにリストされている他のURI書き換えルールに対するリクエストの照合を停止します。
例4: ファイル名が変数の場合、ルートディレクトリにURIプレフィックスを追加する
ルートディレクトリ内のすべてのファイルのURIに /imageパスを追加します。 たとえば、URIの /xxxを /image/xxxに書き換えます。 この例では、xxxは /hello.jpgや /hello.htmlなどのファイル名です。
オリジナルURI
^(.*)$
説明^(.*)$は任意の文字に一致し、括弧 () のペアはグループを表します。 最後のURIで $1を使用して、グループ内の変数を呼び出すことができます。
最終URI
/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
システムは、[URI書き換え] タブにリストされている他のURI書き換えルールに対するリクエストの照合を停止します。
例5: ファイル名が変数の場合、特定のディレクトリにURIプレフィックスを追加します。
/liveディレクトリ内のすべてのファイルのURIに /imageパスを追加します。 たとえば、URIの /live/xxxを /image/live/xxxに書き換えます。 この例では、xxxは /live/hello.jpgや /live/hello.htmlなどのファイル名です。
オリジナルURI
^/live/(.*)$
最終URI
/画像 /ライブ /$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
システムは、[URI書き換え] タブにリストされている他のURI書き換えルールに対するリクエストの照合を停止します。
例6: 複数のルールが設定されている場合、フラグがNoneに設定されているルールのみを適用します。
次の図に示すように、2つのURI書き換えルールを作成します。

期待される結果:
元の要求:
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つのURI書き換えルールを作成します。

期待される結果:
元の要求:
http://example.com/image_01.png最終リクエスト:
http://example.com/image_02.png説明リクエストは最初のルールと一致し、
http://example.com/image_02.pngに書き換えられます。 他のルールはスキップされます。