INTEGRITY Dokumentace

Vytvořte pravidlo přepisu URL přes API

Použijte Rulesets API k vytváření pravidel URL Rewrite Rules přes API. Přečtěte si Galerie příkladů pravidel pro běžné případy použití.

Pokud používáte Terraform, přečtěte si Konfigurace Transform Rules pomocí Terraformu.

Základní nastavení pravidla

Při vytváření pravidla pro přepis URL přes API se ujistěte, že:

Postup

Pravidlo pro přepis URL vytvoříte pro danou zónu přes API podle tohoto postupu:

  1. Použijte Seznam sad pravidel zóny operaci pro kontrolu, zda již existuje ruleset pro http_request_transform fázi na úrovni zóny.

  2. Pokud fázový ruleset neexistuje, vytvořte jej pomocí Vytvoření rulesetu zóny operace. Ve vlastnostech nového rulesetu nastavte následující hodnoty:

    • typ: zone
    • fáze: http_request_transform
  3. Použijte Aktualizace sady pravidel zóny operaci pro přidání pravidla přepisu URL adresy do seznamu pravidel rulesetu. Případně můžete pravidlo zahrnout do Vytvoření rulesetu zóny požadavek uvedený v předchozím kroku.

Ujistěte se, že váš API token má oprávnění požadovaná oprávnění k provádění operací API.

Příklady požadavků

Příklad: Přidání pravidla, které provede statický přepis URL

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla přepisu adresy URL, které provádí statický přepis cesty URI pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "rewrite_eu_to_emea",
						"expression": "(http.request.uri.query contains \"eu\")",
						"description": "My first static URL rewrite rule",
						"action": "rewrite",
						"action_parameters": {
								"uri": {
										"path": {
												"value": "/emea.html"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"ref": "rewrite_eu_to_emea",
		"id": "<RULESET_ID>",
		"name": "Zone-level Transform Ruleset",
		"description": "Zone-level ruleset that will execute Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"uri": {
						"path": {
							"value": "/emea.html"
						}
					}
				},
				"expression": "(http.request.uri.query contains \"eu\")",
				"description": "My first static URL rewrite rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_request_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Přidání pravidla, které provede dynamický přepis URL

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla přepisu adresy URL, které provádí dynamický přepis cesty URI pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "rewrite_2012_to_archive",
						"expression": "starts_with(http.request.uri.path, \"/news/2012/\")",
						"description": "My first dynamic URL rewrite rule",
						"action": "rewrite",
						"action_parameters": {
								"uri": {
										"path": {
												"expression": "concat(\"/archive\", http.request.uri.path)"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Transform Ruleset",
		"description": "Zone-level ruleset that will execute Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "rewrite_2012_to_archive",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"uri": {
						"path": {
							"expression": "concat(\"/archive\", http.request.uri.path)"
						}
					}
				},
				"expression": "starts_with(http.request.uri.path, \"/news/2012/\")",
				"description": "My first dynamic URL rewrite rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_request_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.


Požadovaná oprávnění API tokenu

API token použitý v API požadavcích pro správu URL Rewrite Rules musí mít alespoň následující oprávnění: