このチュートリアルでは、Transform Rules と Origin Rules を使って、受信リクエストの URI パスと Host ヘッダーの両方を変更します。
訪問者は https://<YOUR_SOURCE_HOSTNAME>/uploads/* から https://<YOUR_TARGET_HOSTNAME>/* へルーティングされます。
このチュートリアルで行うことは次のとおりです。
- パスから
/uploadsを除く URL 書き換えを作成します。 Hostヘッダーを目的のホスト名に変更するオリジンルールを作成します。
この手順で、URI パスと Host ヘッダーの両方を扱い、トラフィックを適切に振り分け、リクエスト処理を整理できます。
-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Create rule > URL Rewrite Rule を選択します。
-
Rule name にわかりやすいルール名を入力します。
-
If incoming requests match で Custom filter expression を選び、Edit expression を選択して、次の式を入力します。
Expression Editor のテキスト:
raw.http.request.uri.path matches "^/uploads/.*" -
Set Rewrite parameters で Path > Rewrite to を選び、Dynamic を選択します。
-
書き換え URL ルールのアクションを定義します。
Path > Rewrite to > Dynamic のあとのテキスト:
regex_replace(raw.http.request.uri.path, "^/uploads/", "/")regex_replace()関数は、パスの/uploads/を/に置き換えます。/uploads/example.jpgは/example.jpgになります。 -
Deploy を選択します。
-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Create rule > Origin Rule を選択します。
-
Rule name にわかりやすいルール名を入力します。
-
When incoming requests match で、ルール式を定義します。
Expression Editor のテキスト:
raw.http.request.uri.path matches "^/uploads/.*" -
Set origin parameters で Host Header > Rewrite to を選択します。
-
一致したリクエストの
Hostヘッダーを目的のホスト名に変更するよう設定します。Host Header > Rewrite to のあとのテキスト:
example.com一致するリクエストの
Hostヘッダー がexample.comになります。example.comは実際のホスト名に置き換えてください。 -
(任意)別のオリジン(DNS ターゲット)へ振り分ける場合は、DNS override を使います。
DNS Record > Override to のあとのテキスト:
example.comデフォルトの DNS レコード ではなく、
example.comの DNS ターゲットへリクエストが振り分けられます。 -
Deploy を選択します。
このチュートリアルを終えると、https://<YOUR_SOURCE_HOSTNAME>/uploads/* への受信トラフィックは https://<YOUR_TARGET_HOSTNAME>/* へ振り分けられます。
意図しないルール実行を避けるため、URL 書き換え と オリジンルール(または Cloud Connector ルール)のフィルターは、対象がはっきりするようにしてください。
ルールは 順番に評価 されます。Transform Rules(URL 書き換えを含む)は、Origin Rules や Cloud Connector より先に実行されます。