使用 Rulesets API 通过 API 配置自定义规则。
skip 操作支持不同的 skip 选项,具体取决于您希望跳过的安全功能或产品。
本页包含自定义规则中不同 skip 规则场景的示例。请注意以下事项:
-
$ZONE_ID值是您要添加规则的 zone ID。 -
$RULESET_ID值是http_request_firewall_customphase 的入口点规则集 ID。有关获取此规则集 ID 的详情,请参阅列出并查看规则集。本页中的 API 示例使用 Create a zone ruleset rule 操作,向现有规则集添加 skip 规则。但入口点规则集可能尚不存在。此时,请调用 Create a zone ruleset 操作,以创建带 skip 规则的入口点规则集。示例请参阅创建规则集。
-
尽管每个示例只包含一个操作参数,您可以通过同时指定
ruleset、phases和products操作参数,在同一规则中使用多个 skip 选项。
此示例调用 Create a zone ruleset rule 操作,向 ID 为 $RULESET_ID 的现有 http_request_firewall_custom phase 入口点规则集添加 skip 规则。对于匹配规则表达式的请求,该规则将跳过当前规则集中的所有剩余规则。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"ruleset": "current"
},
"expression": "http.request.uri.path contains \"/skip-current-ruleset/\"",
"description": ""
}'此示例调用 Create a zone ruleset rule 操作,向 ID 为 $RULESET_ID 的现有 http_request_firewall_custom phase 入口点规则集添加规则。对于匹配规则表达式的请求,该规则将跳过 http_ratelimit phase。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phases": [
"http_ratelimit"
]
},
"expression": "http.request.uri.path contains \"/skip-phase/\"",
"description": ""
}'可跳过的 phase 列表请参阅 Available skip options。
此示例调用 Create a zone ruleset rule 操作,添加一条规则,用于:
- 跳过
http_ratelimitphase - 禁用当前规则的事件日志记录
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phases": [
"http_ratelimit"
]
},
"logging": {
"enabled": false
},
"expression": "http.request.uri.path contains \"/disable-logging/\"",
"description": ""
}'有关为匹配 skip 规则的请求禁用日志记录的更多信息,请参阅 Available skip options。
此示例使用 Create a zone ruleset rule 操作添加规则,对于匹配规则表达式的请求,跳过 Zone Lockdown 和 User Agent Blocking 产品。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"products": [
"zoneLockdown",
"uaBlock"
]
},
"expression": "http.request.uri.path contains \"/skip-products/\"",
"description": ""
}'可跳过的产品列表请参阅 Available skip options。
此示例调用 Create a zone ruleset rule 操作,向 ID 为 $RULESET_ID 的现有 http_request_firewall_custom phase 入口点规则集添加 skip 规则。对于匹配规则表达式的请求,该规则将跳过 http_request_firewall_custom phase 中的所有剩余规则。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phase": "current"
},
"expression": "http.request.uri.path contains \"/skip-current-ruleset/\"",
"description": ""
}'目前,此 skip 选项仅在 zone 级别可用。更多详情请参阅 Available skip options。