מדריך קלאודפלייר בעברית

תיעוד 103

יצירת כלל באמצעות API

עודכן לאחרונה: 16 באפריל 2026

השתמשו ב-Rulesets API כדי ליצור Cache Response Rule באמצעות API. להגדרת Cloudflare API, עיינו ב-תיעוד ה-API.

#הגדרות בסיסיות של כלל

כשיוצרים Cache Response Rule באמצעות API, ודאו שאתם:

  • מגדירים את פעולת הכלל לאחת מהפעולות הזמינות.
  • מגדירים את הפרמטרים בשדה action_parameters לפי ההגדרות שברצונכם להגדיר עבור תגובות תואמות.
  • פורסים את הכלל ל-ruleset של נקודת הכניסה בשלב http_response_cache_settings.

#הליך

  1. השתמשו בפעולה List zone rulesets כדי לבדוק אם כבר קיים ruleset עבור השלב http_response_cache_settings.
  2. אם ה-ruleset של השלב לא קיים, צרו אותו באמצעות הפעולה Create a zone ruleset. במאפייני ה-ruleset החדש, הגדירו את הערכים הבאים:
    • kind: zone
    • phase: http_response_cache_settings
  3. השתמשו בפעולה Update a zone ruleset כדי להוסיף כללים ל-ruleset. לחלופין, כללו את הכללים בבקשת Create a zone ruleset שהוזכרה בשלב הקודם.

#בקשות לדוגמה

הדוגמאות האלה מציגות את כל הפעולות הזמינות ב-Cache Response Rules, באמצעות קריטריונים להתאמת בקשה ותגובה. שימוש בדוגמאות אלה ישירות יגרום להחלפה של כל הכללים הקיימים בשלב.

#דוגמה: הסרת כותרות תגובה מקובצי JS לפני שמירה במטמון

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.request.uri.path.extension eq \"js\"",
						"description": "Strip caching headers from JS files",
						"action": "set_cache_settings",
						"action_parameters": {
								"strip_etags": true,
								"strip_set_cookie": true,
								"strip_last_modified": true
						}
				}
		]
	}'

#דוגמה: הגדרת תגי מטמון סטטיים על תגובות API

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.request.uri.path starts_with \"/api/\"",
						"description": "Tag API responses for targeted purging",
						"action": "set_cache_tags",
						"action_parameters": {
								"operation": "set",
								"values": [
										"api-response",
										"dynamic-content"
								]
						}
				}
		]
	}'

#דוגמה: הוספת תגי מטמון מכותרת תגובה באמצעות ביטוי

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "any(http.response.headers.names[*] == \"Surrogate-Keys\")",
						"description": "Extract cache tags from alternative CDN response header",
						"action": "set_cache_tags",
						"action_parameters": {
								"operation": "add",
								"expression": "split(http.response.headers[\"Surrogate-Keys\"][0], \",\", 1)"
						}
				}
		]
	}'

#דוגמה: דריסת cache-control באמצעות max-age

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.response.code eq 200",
						"description": "Override cache-control for successful responses",
						"action": "set_cache_control",
						"action_parameters": {
								"max-age": {
										"operation": "set",
										"value": 3600,
										"cloudflare_only": true
								}
						}
				}
		]
	}'

#דוגמה: הגדרת הנחיית private עם qualifiers

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.request.uri.path starts_with \"/user/\"",
						"description": "Mark user content as private",
						"action": "set_cache_control",
						"action_parameters": {
								"private": {
										"operation": "set",
										"qualifiers": [
												"X-User-Id",
												"X-Session-Token"
										]
								},
								"no-cache": {
										"operation": "set"
								}
						}
				}
		]
	}'

#דוגמה: הגדרת immutable עבור נכסי גופנים סטטיים

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.request.uri.path.extension in {\"woff2\" \"woff\" \"ttf\"}",
						"description": "Mark fonts as immutable",
						"action": "set_cache_control",
						"action_parameters": {
								"immutable": {
										"operation": "set"
								},
								"max-age": {
										"operation": "set",
										"value": 31536000
								}
						}
				}
		]
	}'

#דוגמה: כמה כללים עם הסרת כותרות, תיוג תגובות, והגדרת cache control

עדכון ruleset של נקודת כניסה באזור, bash

curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_cache_settings/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "http.response.code eq 200 and http.request.uri.path.extension eq \"html\"",
						"description": "Strip tracking headers from HTML responses",
						"action": "set_cache_settings",
						"action_parameters": {
								"strip_etags": true,
								"strip_set_cookie": true
						}
				},
				{
						"expression": "http.request.uri.path starts_with \"/products/\"",
						"description": "Tag product pages for purging",
						"action": "set_cache_tags",
						"action_parameters": {
								"operation": "add",
								"values": [
										"product-catalog",
										"storefront"
								]
						}
				},
				{
						"expression": "http.response.code eq 200",
						"description": "Set cache control for all 200 responses",
						"action": "set_cache_control",
						"action_parameters": {
								"s-maxage": {
										"operation": "set",
										"value": 86400,
										"cloudflare_only": true
								},
								"must-revalidate": {
										"operation": "set"
								}
						}
				}
		]
	}'

#הרשאות נדרשות לאסימון API

לאסימון ה-API שבו משתמשים בבקשות API לניהול Cache Response Rules חייבות להיות ההרשאות הבאות:

  • Zone > Cache Rules > Edit
  • Account Rulesets > Edit
  • Account Filter Lists > Edit