← Cloudflare Rules / rules / url-forwarding / bulk-redirects
Vytvořte Bulk Redirects přes API
Chcete-li vytvořit Bulk Redirects přes API, musíte:
- Vytvořte Bulk Redirect List přes API.
- Přidejte položky (přesměrování URL) do seznamu vytvořeného v kroku 1.
- Vytvořte Bulk Redirect Rule přes API, které aktivuje seznam vytvořený v kroku 1.
1. Vytvořte Bulk Redirect List přes API
Použijte Vytvořte seznam operaci pro vytvoření nového Bulk Redirect List. Seznam kind musí být redirect.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Account Filter Lists Edit
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "my_redirect_list",
"description": "My redirect list.",
"kind": "redirect"
}'{
"result": {
"id": "f848b6ccb07647749411f504d6f88794",
"name": "my_redirect_list",
"description": "My redirect list.",
"kind": "redirect",
"num_items": 0,
"num_referencing_filters": 0,
"created_on": "2021-10-28T09:11:42Z",
"modified_on": "2021-10-28T09:11:42Z"
},
"success": true,
"errors": [],
"messages": []
}Poznamenejte si ID seznamu, budete ho potřebovat v dalším kroku.
Další informace o operacích se seznamy naleznete v Lists API dokumentace.
2. Přidání položek do seznamu
Použijte Vytvořte položky seznamu operaci pro přidání položek přesměrování URL adres do seznamu. Do URL adresy koncového bodu zadejte ID seznamu z předchozího kroku:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Account Filter Lists Edit
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists/f848b6ccb07647749411f504d6f88794/items" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '[
{
"redirect": {
"source_url": "example.com/blog/",
"target_url": "https://example.com/blog/latest"
}
},
{
"redirect": {
"source_url": "example.net/",
"target_url": "https://example.net/under-construction.html",
"status_code": 307
}
}
]'{
"result": {
"operation_id": "92558f8b296d4dbe9d0419e0e53f6622"
},
"success": true,
"errors": [],
"messages": []
}Jedná se o asynchronní operaci. Odpověď bude obsahovat operation_id který použijete ke kontrole, zda operace proběhla úspěšně, pomocí Získat stav hromadné operace operace:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Account Filter Lists EditAccount Filter Lists Read
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rules/lists/bulk_operations/92558f8b296d4dbe9d0419e0e53f6622" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Jakmile operace úspěšně skončí, odpověď bude vypadat přibližně takto:
{
"result": {
"id": "92558f8b296d4dbe9d0419e0e53f6622",
"status": "completed",
"completed": "2021-10-28T09:15:42Z"
},
"success": true,
"errors": [],
"messages": []
}3. Vytvoření pravidla Bulk Redirect Rule přes API
Bulk Redirect Lists jsou v podstatě kontejnery přesměrování URL, proto musíte přesměrování v seznamu povolit vytvořením Bulk Redirect Rule.
Přidejte Bulk Redirect Rules do vstupní sada pravidel http_request_redirect fázi na úrovni účtu. Viz Rulesets API dokumentaci, kde najdete další informace o vytváření sady pravidel a zadáním seznamu pravidel pro sadu pravidel.
Bulk Redirect Rule musí obsahovat:
actionnastaveno naredirect-
action_parametersobjekt s dalšími konfiguračními nastaveními, viz Objekty JSON API pro Bulk Redirects s podrobnostmi.
Následující požadavek Vytvořte account ruleset operace vytvoří vstupní ruleset fáze pro http_request_redirect fázi na úrovni účtu a definuje jedno pravidlo přesměrování. Tuto operaci použijte, pokud jste ještě nevytvořili vstupní sadu pravidel fáze pro http_request_redirect fázi.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "My redirect ruleset",
"kind": "root",
"phase": "http_request_redirect",
"rules": [
{
"ref": "enable_my_redirect_list",
"expression": "http.request.full_uri in $my_redirect_list",
"description": "Bulk Redirect rule.",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list",
"key": "http.request.full_uri"
}
}
}
]
}'{
"result": {
"id": "528f4f03bf0da53a29907199625867be",
"name": "My redirect ruleset",
"kind": "root",
"version": "1",
"rules": [
{
"ref": "enable_my_redirect_list",
"id": "8da312df846b4258a05bcd454ea943be",
"version": "1",
"expression": "http.request.full_uri in $my_redirect_list",
"description": "Bulk Redirect rule.",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list",
"key": "http.request.full_uri"
}
},
"last_updated": "2021-10-28T09:20:42Z"
}
],
"last_updated": "2021-10-28T09:20:42Z",
"phase": "http_request_redirect"
},
"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.
Pokud pro danou fázi již existuje vstupní sada pravidel (entry point ruleset) pro http_request_redirect fázi použijte Aktualizace rulesetu účtu operaci, jako v následujícím příkladu:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "My redirect ruleset",
"kind": "root",
"phase": "http_request_redirect",
"rules": [
{
"ref": "eval_redirects_list_1",
"expression": "http.request.full_uri in $my_redirect_list_1",
"description": "Bulk Redirect rule 1",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list_1",
"key": "http.request.full_uri"
}
}
},
{
"ref": "eval_redirects_list_2",
"expression": "http.request.full_uri in $my_redirect_list_2",
"description": "Bulk Redirect rule 2",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list_2",
"key": "http.request.full_uri"
}
}
}
]
}'{
"result": {
"id": "67013aa153df4e5fbda92f92bc979331",
"name": "default",
"description": "",
"kind": "root",
"version": "2",
"rules": [
{
"ref": "eval_redirects_list_1",
"id": "8be62ab2ef9a4a41af30c24ff8e73e41",
"version": "1",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list_1",
"key": "http.request.full_uri"
}
},
"expression": "http.request.full_uri in $my_redirect_list_1",
"description": "Bulk Redirect rule 1",
"last_updated": "2021-12-03T15:38:51.658387Z",
"ref": "8be62ab2ef9a4a41af30c24ff8e73e41",
"enabled": true
},
{
"ref": "eval_redirects_list_2",
"id": "97e38797fb2b4b22a4919800f1318a5c",
"version": "1",
"action": "redirect",
"action_parameters": {
"from_list": {
"name": "my_redirect_list_2",
"key": "http.request.full_uri"
}
},
"expression": "http.request.full_uri in $my_redirect_list_2",
"description": "Bulk Redirect rule 2",
"last_updated": "2021-12-03T15:38:51.658387Z",
"ref": "97e38797fb2b4b22a4919800f1318a5c",
"enabled": true
}
],
"last_updated": "2021-12-03T15:38:51.658387Z",
"phase": "http_request_redirect"
},
"success": true,
"errors": [],
"messages": []
}Požadovaná oprávnění API tokenu
API token použitý v API požadavcích pro správu objektů Bulk Redirects (seznamů, položek seznamu a pravidel) musí mít alespoň následující oprávnění:
- Účet > Bulk URL Redirects > Úprava
- Účet > Account Filter Lists > Úprava
- Mass URL Redirects Write
- Account Rule Lists Write