Set URL Rewrite Rules

最終更新日:2024-07-09 16:18:40

ユーザーがCDNetworks CDNプラットフォームを通じてあなたのウェブサイトコンテンツにアクセスする際に、コンソールで簡単なルールを設定することで、リクエストURLのプロトコル、リクエスト内容、リクエストヘッダー、またはユーザーの地理的位置などのさまざまな基準に基づいて特定のコンテンツをユーザーに配信できます。現在、CDNetworksは、新しいリクエストURLまたはプロトコルを書き換えるために特定のステータスコードと新しいリクエストURLで応答し、クライアントが新しいリクエストを開始するシナリオをサポートしています。

URL/Protocol Rewritingの設定方法

  1. CDNetworksコンソール にログインし、適切な製品を選択します。
  2. Configuration ページに移動し、設定したいドメインを見つけて、その上部の Modify Configuration またはドメイン名の右側にあるEditボタンをクリックします Self-Service Configuration for China Premium Service Onboarding
  3. 設定変更ページに入り、Page Rewriting/Redirectingの下にある URL/Protocol Rewriting を見つけて、Add ボタンをクリックします。
  4. ルール編集ページで、以下の設定項目を必要に応じて追加することができます。

Effective Range
CDNetworksでは、コンソールに正規表現を入力してユーザーのリクエストが書き換えルールに適合するかどうかを判断する URL Pattern を設定できます。例えば: rewrite/*.(jpg|png|gif) は、rewrite ディレクトリ内の jpg|png|gif ファイルに対するリクエストがこのルールに一致することを意味します。


上記のように、ルールの有効範囲の基本的なマッチング条件としてURLの正規表現を設定する以外に、Advanced Scopeを使用して他の条件を追加することもできます。以下のパラメータの1つまたは複数を選択して、基本URLの正規表現と組み合わせてAND関係を形成し、ルールの最終的な適用範囲を決定します。

パラメータ 説明
UA or Exception UA 正規表現をサポートし、スペースおよびTABは \s に置き換えられます。
複数のUAを同時に設定でき、各UAは別の行に配置します。
Country or Exception Country CDNetworksが提供する国/地域リストから直接検索選択をサポートします。
中国本土の場合、特定の省や東中国、南西中国などの地域を選択できます。
Request Header or Exception Request Header ヘッダーとその値を入力し、その値は正規表現をサポートします。例えば:Range bytes=[0-9]{9,}
現在、1つのルールでは1つのリクエストヘッダーのみを設定できます。
Exception URL (Regex) 正規表現をサポートします。
URL Patternrewrite/*.(jpg|png|gif) を入力し、この項目に rewrite/*exception*.jpg を入力した場合、rewrite ディレクトリ内の jpg|png|gif ファイルに対するリクエストはこのルールに一致しますが、*exception*.jpg を含むリクエストには適用されません。

Exceptionと記載されたAdvanced Scope項目はNOTを意味し、基本マッチングルール範囲内の特定のケースを除外します。上記の各設定項目は単一ルールで1回のみ出現でき、UAException UAは単一ルールで互いに排他的であり、CountryRequest Headerも同様です。したがって、最大4つの高度な構成項目が同時に存在できます。

Rewrite Type
現在、CDNetworksでは Protocol Rewrite または URL Rewrite のいずれかを選択できます。選択したタイプに関係なく、クライアントに返す応答ステータスコードを選択する必要があり、CDNetworksでは一連の応答ステータスコード 301;302;303;307 をサポートしています。デフォルト値は 302 です。

タイプ1:プロトコル書き換え
プロトコル書き換えは、CDNエッジノードがクライアントリクエストを受信した際にプロトコルを書き換えることを指します。ノードは書き換えられたプロトコルを使用してキャッシュおよびオリジンプルを行います。リクエストバックトゥオリジン時にプロトコルのみを書き換える場合は、関連ルールの設定についてOrigin Pull Protocol Rewriting を参照してください。このルールでは、以下のように HTTP -> HTTPS または HTTPS -> HTTP の書き換えを選択できます。


タイプ2:URL書き換え
プロトコル書き換えと同様に、URL書き換えはCDNノードがリクエストを受信した際に行われ、書き換えられたURLを使用してキャッシュおよびオリジンプルを行います。リクエストback to origin時にリクエストURLのホストとポートのみを置換する場合は、関連ルールの設定についてOrigin Pull Host and Port を参照してください。URL書き換えのタイプでは、書き換えたいリクエストURLをOriginal Pathに入力できます。正規表現または完全なURLをサポートしています。例えば (https://[^/]+)/.* または http://domain/browse/index.html?aa=1 です。Redirection Pathには、http:// または https:// で始まる書き換え後のパスを入力します。


Priority
このルールの優先順位を1から10まで設定でき、数字が大きいほどマッチおよび適用の優先順位が高くなります。同一のマッチング条件がある場合、優先順位が高いルールのみが適用されます。

Add ボタンをクリックして詳細なパラメータ構成のルールページに入る以外にも、Add ボタン横の Quick Configuration をクリックしてプロトコルまたはURL書き換えを簡単に構成することもできます。クイック構成では、Effect Rangeがデフォルトですべてのリクエストに設定され、応答ステータスコードは 302 になり、その他の構成(書き換えるプロトコル、オリジナルURLおよびリダイレクトURL、優先順位)はすべてカスタマイズできます。



上記の設定を完了したら、Confirm をクリックし、その後 Next を選択して設定を送信してください。本番環境への影響を避けるため、まずテスト環境で構成を検証するためにPre-deployingを推奨します。構成が正しいことを確認したら、Deploy Directlyをクリックしてライブ環境で正式に構成を有効にします。通常、設定は約3〜5分で有効になります。事前デプロイテストの詳細については、構成の効果を事前デプロイで検証するチュートリアルを参照してください。

構成例

例1:URL正規表現およびUA、国フィールドに一致するリクエストのProtocol rewriting
このルールに関連付けられたドメインの場合、図に示されているURL正規表現に一致し、UAヘッダーが Mozilla/4.0 でユーザーの国が 日本; 韓国 の場合、CDNサーバーは書き換えられたプロトコルでURLをキャッシュしてクライアントに返します。例えば、http://domain/rewrite/example.jpg のリクエストは https://domain/rewrite/example.jpg を返し、応答ステータスコードは 303 で、クライアントが新しいプロトコルのURLに新しいリクエストを開始することを促します。


例2:URL正規表現およびUA、国フィールド、特定のURLに一致するリクエストのURL rewriting
このルールに関連付けられたドメインの場合、図に示されているURL正規表現に一致し、UAヘッダーが Mozilla/4.0 でユーザーの国が 日本; 韓国 であり、指定された Original Path に一致する場合、CDNサーバーは書き換えられたURLをキャッシュしてクライアントに返します。例えば、https://domain/rewrite/urltype1.jpg のリクエストは https://domain/target/urltype1.jpg を返し、応答ステータスコードは 302 で、クライアントが返されたURLに新しいリクエストを開始することを促します。


注意事項

ノードはキャッシュおよびオリジンプルに書き換えられたURLを使用するため、書き換えられたドメインはCDNetworks CDNプラットフォームで加速されたドメインでなければなりません。
Protocol Rewrite タイプについては、ドメインごとに1つのルールのみが許可されます。これは、HTTP—>HTTPS および HTTPS—>HTTP の両方に同時にヒットするリクエストが潜在的なループ問題を引き起こす可能性があるためです。複数のProtocol Rewriteルールを構成するには、技術サポートに連絡してください。