コンテンツにスキップ

FAQ

以下に、オリジンルールに関する最も一般的な質問への回答を示します。

オリジンルールとページルールの両方を使用してHostヘッダー/DNSレコードのオーバーライドを行った場合、どうなりますか?

この場合、オリジンルールのパラメータがページルールのパラメータを上書きします。

以下の例を考えてみましょう:

  • ページルールがHostヘッダーのオーバーライドを定義していますが、解決オーバーライド(またはDNSレコードオーバーライド)は定義していません。オリジンルールがDNSレコードオーバーライドを定義していますが、Hostヘッダーのオーバーライドは定義していません。結果として、リクエストはページルールによって定義されたHostヘッダーと、オリジンルールによって定義されたオリジンホスト名を持ちます。
  • ページルールがHostヘッダーのオーバーライドを定義し、オリジンルールもHostヘッダーのオーバーライドを定義しています。結果として、リクエストはオリジンルールによって定義されたHostヘッダーを持ちます。

Cloudflareは、HostヘッダーとDNSレコードのオーバーライドを持つ私のページルールをオリジンルールに自動的に移行しますか?

はい。移行プロセスに関する最新情報はページルール移行ガイドを参照してください。

現在のリクエストに複数のオリジンルールが一致した場合、どうなりますか?

2つ以上のオリジンルールがリクエストに一致する場合、それらのルールの設定がマージされます。2つの設定をマージする際、後のルールの設定が前のルールで定義された設定を上書きし、設定プロパティを更新または追加します。Cloudflareによって適用される最終的な設定は、このマージされたバージョンになります。

例えば、以下の2つのオリジンルールを設定し、両方のルールが一致した場合、Cloudflareは最初のルールで設定された宛先ポートを使用し、2番目のルールで設定されたDNSホスト名のオーバーライドとHostヘッダーの値を使用します。

オリジンルール #1

パラメータ
Hostヘッダーを設定example.com
宛先ポートを設定8081

オリジンルール #2

パラメータ
Hostヘッダーを設定example.net
DNSホスト名を設定example.net

APIユーザー向けのJSON例

APIを使用する場合、オリジンルールのパラメータをaction_parametersオブジェクトで設定します。

{
"rules": [
{
"expression": "http.request.uri.query contains \"/eu/\"",
"description": "オリジンルール #1",
"action": "route",
"action_parameters": {
"host_header": "example.com",
"origin": {
"port": 8081
}
}
},
{
"expression": "http.request.uri.query contains \"/eu/\"",
"description": "オリジンルール #2",
"action": "route",
"action_parameters": {
"host_header": "example.net",
"origin": {
"host": "example.net"
}
}
}
]
}

適用されるマージされた設定は以下の通りです:

パラメータ
Hostヘッダーを設定example.net
宛先ポートを設定8081
DNSホスト名を設定example.net

もしルール #2で宛先ポートも設定していた場合、その値はルール #1で定義された8081の宛先ポートを上書きします。