Origin Rules について、よくある質問への回答をまとめます。
この場合、Origin Rule のパラメーターが Page Rule のパラメーターより優先されます。
次の例を考えてください。
- Page Rule が Host ヘッダーの上書きを定義し、resolve override(または DNS レコードの上書き)は定義していません。Origin Rule が DNS レコードの上書きを定義し、Host ヘッダーの上書きは定義していません。結果のリクエストは、
Hostヘッダーが Page Rule の値、オリジンのホスト名が Origin Rule の値になります。 - Page Rule が Host ヘッダーの上書きを定義し、Origin Rule も Host ヘッダーの上書きを定義しています。結果のリクエストの
Hostヘッダーは、Origin Rule の値になります。
はい。Page Rules 移行ガイド で、移行の最新情報を確認してください。
2 つ以上の Origin Rules がリクエストに一致すると、それらの構成がマージされます。2 つの構成をマージするとき、後のルールの設定が前のルールの設定を上書きし、構成プロパティを更新または追加します。Cloudflare が最終的に適用する構成は、このマージ結果です。
たとえば、次の 2 つの Origin Rules を設定し、両方とも一致した場合、Cloudflare は 1 つ目のルールで設定した宛先ポートと、2 つ目のルールで設定した DNS ホスト名の上書きおよび Host ヘッダー値を使います。
Origin rule #1
| Parameter | Value |
|---|---|
Set Host header |
example.com |
| Set destination port | 8081 |
Origin rule #2
| Parameter | Value |
|---|---|
Set Host header |
example.net |
| Set DNS hostname | example.net |
API 利用者向けの JSON 例
API を使う 場合、Origin Rule のパラメーターは action_parameters オブジェクトで設定します。
{
"rules": [
{
"expression": "http.request.uri.query contains \"/eu/\"",
"description": "Origin rule #1",
"action": "route",
"action_parameters": {
"host_header": "example.com",
"origin": {
"port": 8081
}
}
},
{
"expression": "http.request.uri.query contains \"/eu/\"",
"description": "Origin rule #2",
"action": "route",
"action_parameters": {
"host_header": "example.net",
"origin": {
"host": "example.net"
}
}
}
]
}適用されるマージ後の構成は次のとおりです。
| Parameter | Value |
|---|---|
Set Host header |
example.net |
| Set destination port | 8081 |
| Set DNS hostname | example.net |
ルール #2 でも宛先ポートを設定している場合、その値がルール #1 で定義した宛先ポート 8081 を上書きします。