Skip to content

Commit af0157c

Browse files
committed
Update single redirects examples
1 parent fcbb2a1 commit af0157c

File tree

1 file changed

+68
-67
lines changed

1 file changed

+68
-67
lines changed

src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx

Lines changed: 68 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sidebar:
66
label: Create rule via API
77
---
88

9-
import { Details, Render } from "~/components";
9+
import { Details, Render, APIRequest } from "~/components";
1010

1111
Use the [Rulesets API](/ruleset-engine/rulesets-api/) to create a redirect rule via API.
1212

@@ -28,32 +28,33 @@ A redirect rule must have:
2828

2929
The following request of the [Create a zone ruleset](/api/resources/rulesets/methods/create/) operation creates a phase entry point ruleset for the `http_request_dynamic_redirect` phase at the zone level, and defines a single redirect rule with a dynamic URL redirect. Use this operation if you have not created a phase entry point ruleset for the `http_request_dynamic_redirect` phase yet.
3030

31-
```bash title="Request"
32-
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \
33-
--header "Authorization: Bearer <API_TOKEN>" \
34-
--header "Content-Type: application/json" \
35-
--data '{
36-
"name": "Redirect rules ruleset",
37-
"kind": "zone",
38-
"phase": "http_request_dynamic_redirect",
39-
"rules": [
40-
{
41-
"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and http.request.uri.path eq \"/\"",
42-
"description": "Redirect GB and FR users in home page to localized site.",
43-
"action": "redirect",
44-
"action_parameters": {
45-
"from_value": {
46-
"target_url": {
47-
"expression": "lower(concat(\"https://\", ip.src.country, \".example.com\"))"
48-
},
49-
"status_code": 307,
50-
"preserve_query_string": true
51-
}
52-
}
53-
}
54-
]
55-
}'
56-
```
31+
<APIRequest
32+
path="/zones/{zone_id}/rulesets"
33+
method="POST"
34+
json={{
35+
name: "Redirect rules ruleset",
36+
kind: "zone",
37+
phase: "http_request_dynamic_redirect",
38+
rules: [
39+
{
40+
expression:
41+
'(ip.src.country eq "GB" or ip.src.country eq "FR") and http.request.uri.path eq "/"',
42+
description: "Redirect GB and FR users in home page to localized site.",
43+
action: "redirect",
44+
action_parameters: {
45+
from_value: {
46+
target_url: {
47+
expression:
48+
'lower(concat("https://", ip.src.country, ".example.com"))',
49+
},
50+
status_code: 307,
51+
preserve_query_string: true,
52+
},
53+
},
54+
},
55+
],
56+
}}
57+
/>
5758

5859
<Details header="Response">
5960

@@ -96,46 +97,46 @@ curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \
9697

9798
If there is already a phase entry point ruleset for the `http_request_dynamic_redirect` phase, use the [Update a zone ruleset](/api/resources/rulesets/methods/update/) operation instead, like in the following example:
9899

99-
```bash title="Request"
100-
curl --request PUT \
101-
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{ruleset_id} \
102-
--header "Authorization: Bearer <API_TOKEN>" \
103-
--header "Content-Type: application/json" \
104-
--data '{
105-
"name": "Redirect rules ruleset",
106-
"kind": "zone",
107-
"phase": "http_request_dynamic_redirect",
108-
"rules": [
109-
{
110-
"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and http.request.uri.path eq \"/\"",
111-
"description": "Redirect GB and FR users in home page to localized site.",
112-
"action": "redirect",
113-
"action_parameters": {
114-
"from_value": {
115-
"target_url": {
116-
"expression": "lower(concat(\"https://\", ip.src.country, \".example.com\"))"
117-
},
118-
"status_code": 307,
119-
"preserve_query_string": true
120-
}
121-
}
122-
},
123-
{
124-
"expression": "http.request.uri.path eq \"/contacts.html\"",
125-
"description": "Redirect to new contacts page.",
126-
"action": "redirect",
127-
"action_parameters": {
128-
"from_value": {
129-
"target_url": {
130-
"value": "https://example.com/contact-us/"
131-
},
132-
"status_code": 308
133-
}
134-
}
135-
}
136-
]
137-
}'
138-
```
100+
<APIRequest
101+
path="/zones/{zone_id}/rulesets/{ruleset_id}"
102+
method="PUT"
103+
json={{
104+
name: "Redirect rules ruleset",
105+
kind: "zone",
106+
phase: "http_request_dynamic_redirect",
107+
rules: [
108+
{
109+
expression:
110+
'(ip.src.country eq "GB" or ip.src.country eq "FR") and http.request.uri.path eq "/"',
111+
description: "Redirect GB and FR users in home page to localized site.",
112+
action: "redirect",
113+
action_parameters: {
114+
from_value: {
115+
target_url: {
116+
expression:
117+
'lower(concat("https://", ip.src.country, ".example.com"))',
118+
},
119+
status_code: 307,
120+
preserve_query_string: true,
121+
},
122+
},
123+
},
124+
{
125+
expression: 'http.request.uri.path eq "/contacts.html"',
126+
description: "Redirect to new contacts page.",
127+
action: "redirect",
128+
action_parameters: {
129+
from_value: {
130+
target_url: {
131+
value: "https://example.com/contact-us/",
132+
},
133+
status_code: 308,
134+
},
135+
},
136+
},
137+
],
138+
}}
139+
/>
139140

140141
<Details header="Response">
141142

0 commit comments

Comments
 (0)