Cloudflare で特定のパスだけ別のサーバーへアクセスさせる方法(Enterprise 編)

Cloudflare で特定のパスだけ別のサーバーへアクセスさせる方法(Enterprise 編)

Cloudflare Enterprise プランでは Origin Rule で異なるドメインのオリジンを指定できます。
2025.11.05

ウィスキー、シガー、パイプをこよなく愛する大栗です。

Cloudflare の Application Service(CDN)で特定のパスだけ別サーバーへアクセスを振り分けたいというときの設定方法についてまとめてみます。

やりたいこと

Cloudflare に example.com のゾーンを作成しており、以下のドメインがあるとします。

  • サービスドメイン : www.example.com (Cloudflare 管理ドメイン)
  • オリジンドメイン1 : org1.example.net (外部ドメイン)
  • オリジンドメイン2 : org2.example.net (外部ドメイン)
  1. デフォルトルーティング

通常はオリジンドメイン1(org1.example.net)へ転送します。

  1. 特定パスのルーティング

リクエストパスが /other-domain/ で始まる場合はオリジンドメイン2(org2.example.net)へ転送します。オリジンドメイン2 へのリクエストパスは先頭の /other-domain/ を削除します。

例えば以下のように転送します。

  • デフォルトルーティング
    • https://www.example.com/index.html -> https://org1.example.net/index.html
  • 特定パスのルーティング
    • https://www.example.com/other-domain/test -> https://org2.example.net/test

設定概要

すでに、サービスドメイン(www.example.com)をオリジンドメイン1(org1.example.net)へ転送する設定は実施済みの前提とします。

必要な設定は、1. 特定パスの場合に別ドメインへ転送する、2. 別ドメインに転送するときにパスを変換する、の2個を設定する必要があります。

  1. 別ドメインに転送するときにパスを変換する

パスを変換するには、Transform Rule で URL リライトルールを設定します。

  1. 特定パスの場合に別ドメインへ転送する

別ドメインへ転送するには、Origin Rule で DNS レコードとホスト ヘッダー[1]を書き換えます。なお Origin Rule で宛先ポート以外(DNS レコード、Server Name Indication、ホスト ヘッダー、)を書き換えるには Enterprise Plan が必要となります。

Transform Rule の URL リライトと Origin Rule の設定が必要となります。適用される順番は URL リライトが先であるため、/other-domain/ を削除したパスは /* とすべてのパスになってしまいます。そのため Origin Rule でそのまま判定してしまうと対象外のリクエストまで別ドメインに転送してしまうので、設定方法に注意が必要です。

スクリーンショット 2025-10-30 11.48.22のコピー4

Origin Rule にはもう一つ注意が必要な設定があります。オリジンを変更する DNS レコードは、同一の Cloudflare アカウントで管理しているドメインでなければなりません。そのため org2.example.com のようなダミーのドメインを DNS のみで登録します。

やってみる

Cloudflare のコンソールから設定を行っていきます。

DNS レコードの作成

ダミーとしての org2.example.com ドメインの DNS レコードを作成します。以下の内容を設定して 保存 をクリックします。

項目 設定値 備考
タイプ CNAME
名前 org2 内部的に使用するドメイン
ターゲット org2.example.net オリジンドメイン2を設定する
プロキシ ステータス DNS のみ

スクリーンショット 2025-11-05 19.22.06のコピー

URL リライトの設定

ルールの概要ページを開き、ルールを作成 から URL 書き換えルール をクリックします。

スクリーンショット 2025-11-05 18.58.50のコピー

URL リライト行う条件は以下の内容を設定します。

項目 設定値 備考
ルール名 <任意> ここでは Rewrite-1 としています
受信リクエストが一致する場合… ワイルドカード パターン
リクエスト URL https://www.example.com/other-domain/*

スクリーンショット 2025-11-05 19.04.20のコピー

実行するアクションに以下の内容を設定して、デプロイ をクリックします。

項目 設定値 備考
ターゲット パス other-domain/*
書き換え先 ${1}

スクリーンショット 2025-11-05 19.08.32のコピー

Origin Rule の設定

ルールの概要ページを開き、ルールを作成 から オリジン ルール をクリックします。

スクリーンショット 2025-11-05 18.24.23のコピー

受信リクエストが一致する場合で カスタム フィルタ式 を選択したあとに 式を編集 をクリックして条件の式を直接編集します。これは、Web サーバーが受信した変換される前の 完全 URI は式ビルダーで選択できないためです。Web サーバーが受信した変換される前の値は、raw. から始まる変数です。

式を以下のように記述します。

(raw.http.request.full_uri wildcard "https://www.example.com/other-domain/*")

スクリーンショット 2025-11-05 18.56.25のコピー

実行するアクションに以下の内容を設定して、デプロイ をクリックします。

項目 設定値 備考
ホスト ヘッダー org2.example.net 書き換え先を選択して、オリジンドメイン2を入力します
Server Name Indication (SNI) 保持
DNS レコード org2.example.com 上書き先を選択して、ダミーのドメインを入力します
宛先ポート 保持

スクリーンショット 2025-11-05 19.46.09のコピー

動作確認

アカウント ホームから Trace を使用します。Trace の画面から トレースの開始 をクリックします。

スクリーンショット 2025-11-05 20.09.17のコピー

URL に確認する URL を入力して トレースの送信 をクリックしてチェックします。

スクリーンショット 2025-11-05 20.11.44のコピー

https://www.example.com/test の場合はルールに一致せずに、デフォルトのルーティングとなります。

スクリーンショット 2025-11-05 20.15.47

https://www.example.com/other-domain/https://www.example.com/other-domain/test といった URL では作成した Transform Rule や Origin Rule に一致します。

スクリーンショット 2025-11-05 20.16.35

実際にアクセスして、アクセスログも確認してみます。

https://www.example.com/https://www.example.com/test にアクセスすると、オリジンドメイン1側のアクセスログで以下のように出力されます。

192.0.2.1 - - [05/Nov/2025:11:23:58 +0000] "GET / HTTP/1.1" 200 1826 "www.example.com"
192.0.2.1 - - [05/Nov/2025:11:24:03 +0000] "GET /test HTTP/1.1" 200 14 "www.example.com"

https://www.example.com/other-domain/https://www.example.com/other-domain/test にアクセスすると、オリジンドメイン2側のアクセスログで以下のように出力されます。

192.0.2.1 - - [05/Nov/2025:11:25:02 +0000] "GET / HTTP/1.1" 200 1826 "-" "org2.example.net"
192.0.2.1 - - [05/Nov/2025:11:25:27 +0000] "GET /test HTTP/1.1" 200 14 "-" "org2.example.net"

これで、特定のパスによって別ドメインのサーバーへ転送を行えるようになりました。

さいごに

Cloudflare は、以前は Page Rule で各種ルールをまとめて記述していたので、ルールの適用順序などを考える必要はありませんでした。しかし、現在はルールをシンプルに記述するために、Configuration Rule、Transform Rule、Origin Rule、Compression Rule、Cache Rule など別々のルールとして設定します。そのためルールの適用順序を意識してルール設定を行いましょう。

脚注
  1. オリジンドメイン2のサーバーがサービスドメインのリクエストを受け付けられる場合にはホスト ヘッダーの書き換えは不要です。 ↩︎

この記事をシェアする

FacebookHatena blogX

関連記事