From 72eaa848f8bb19e77887690c39c539712802cb20 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Tue, 5 Nov 2024 14:00:57 +0000 Subject: [PATCH 1/3] Update URL normalization --- .../url-normalization-settings.png | Bin 59493 -> 49636 bytes ...ed-changes-to-enable-url-normalization.mdx | 35 +++++++------- .../docs/rules/normalization/examples.mdx | 43 ++++++++---------- .../docs/rules/normalization/how-it-works.mdx | 27 +++++------ .../docs/rules/normalization/index.mdx | 12 +++-- .../docs/rules/normalization/manage.mdx | 13 ++---- .../docs/rules/normalization/settings.mdx | 37 ++++++--------- 7 files changed, 75 insertions(+), 92 deletions(-) diff --git a/src/assets/images/rules/normalization/url-normalization-settings.png b/src/assets/images/rules/normalization/url-normalization-settings.png index 2c9d3df5f96c3e576621456b960e16ec8943580f..2b26b21a79595c66c00fc126868e8fe7c6ff8b32 100644 GIT binary patch literal 49636 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 KvPj~?m;V7@t7v}! literal 59493 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 On 2021-04-08, Cloudflare announced [URL normalization](/rules/normalization/), a feature that protects zones by normalizing HTTP request URI paths. -Malicious users can craft specific URIs that could be interpreted differently by firewall systems and origin systems. When you enable **Normalize incoming URLs**, all rules filtering on the URI path will receive the URL in a canonical form, which provides an extra layer of protection against these malicious users.  +Malicious users can craft specific URIs that could be interpreted differently by firewall systems and origin systems. When you enable **Normalize incoming URLs**, all rules filtering on the URI path will receive the URL in a canonical form, which provides an extra layer of protection against these malicious users. -Cloudflare gradually enabled URL normalization for all Cloudflare zones except for those that could be impacted by this change. We determined the impacted zones by analyzing all firewall rules, looking for patterns in HTTP fields that would no longer match when using URL normalization techniques. +Cloudflare gradually enabled URL normalization for all Cloudflare zones except for those that could be impacted by this change. We determined the impacted zones by analyzing all firewall rules, looking for patterns in HTTP fields that would no longer match when using URL normalization techniques. These fields are the following: -* `http.request.uri.path` -* `http.request.full_uri` -* `http.request.uri` +- `http.request.uri.path` +- `http.request.full_uri` +- `http.request.uri` Cloudflare did not enable URL normalization automatically for zones that would be impacted by these changes to prevent any change in behavior of your existing firewall rules. ## Why URL normalization is important -Cloudflare strongly recommends that you enable **Normalize incoming URLs** in **Rules** > **Settings** to strengthen your zone's security posture. Not doing so leaves your zone at greater risk of a successful attack. Malicious parties could craft the URL in a way that the rules are not accounting for. +Cloudflare strongly recommends that you enable **Normalize incoming URLs** in **Rules** > **URL Normalization** to strengthen your zone's security posture. Not doing so leaves your zone at greater risk of a successful attack. Malicious parties could craft the URL in a way that the rules are not accounting for. For example, a firewall rule with an expression such as `http.request.uri.path contains "/login"` could be bypassed if the malicious actor has encoded the `l` character as `%6C`. In this scenario, and with URL normalization disabled, traffic would not be matched by the firewall rule. Refer to [How URL normalization works](/rules/normalization/how-it-works/) for more information and additional examples. -*** +--- ## Recommended procedure @@ -46,23 +45,23 @@ These steps will ensure a stronger security posture on your zone(s). Before enabling URL normalization, you should review the affected firewall rules on your zone(s) and take one of the following approaches: -* Edit these firewall rules to remove the parts which will no longer trigger once normalized — for example, any rules that look for `//` or `../` in URL paths. Administrators previously created these rules to perform a limited URL normalization, and these rules can now be safely disabled and then deleted. +- Edit these firewall rules to remove the parts which will no longer trigger once normalized — for example, any rules that look for `//` or `../` in URL paths. Administrators previously created these rules to perform a limited URL normalization, and these rules can now be safely disabled and then deleted. -* If you wish to identify visitors with non-normalized URI paths with these firewall rules, you should update them to use the original (or raw) non-normalized fields. These fields are the following: +- If you wish to identify visitors with non-normalized URI paths with these firewall rules, you should update them to use the original (or raw) non-normalized fields. These fields are the following: - * `raw.http.request.uri.path` - * `raw.http.request.full_uri` - * `raw.http.request.uri` + - `raw.http.request.uri.path` + - `raw.http.request.full_uri` + - `raw.http.request.uri` ### 2. Enable URL normalization -Once you have updated the affected firewall rules, enable URL normalization in **Rules** > **Settings**. +Once you have updated the affected firewall rules, enable URL normalization in **Rules** > **URL Normalization**. A Cloudflare user must have the [Firewall role](/fundamentals/setup/manage-members/roles/) or one of the Administrator roles to access URL normalization settings in the dashboard. -*** +--- ## Related resources -* [URL normalization](/rules/normalization/) -* [Transform Rules](/rules/transform/) +- [URL normalization](/rules/normalization/) +- [Transform Rules](/rules/transform/) diff --git a/src/content/docs/rules/normalization/examples.mdx b/src/content/docs/rules/normalization/examples.mdx index 936a618d75b3104..38d19857a522476 100644 --- a/src/content/docs/rules/normalization/examples.mdx +++ b/src/content/docs/rules/normalization/examples.mdx @@ -1,36 +1,31 @@ --- -title: Examples +title: URL normalization examples pcx_content_type: configuration sidebar: order: 6 -head: - - tag: title - content: URL normalization examples + label: Examples description: Examples of the impact of different URL normalization settings in the URLs of incoming requests. - +tableOfContents: false --- The following table shows how different [URL normalization settings](/rules/normalization/settings/) affect request URLs before they pass to other Cloudflare features and to the origin server: - - | Incoming URL | Normalization type | Normalize incoming URLs | Normalize URLs to origin | URL at Cloudflare's network | URL passed to origin server | | ---------------------------- | ------------------ | ----------------------- | ------------------------ | ------------------------------ | ------------------------------ | -| `www.example.com/hello` | (any) | *Off* | *Off* | `www.example.com/hello` | `www.example.com/hello` | -| `www.example.com/hello` | (any) | *On* | *Off* | `www.example.com/hello` | `www.example.com/hello` | -| `www.example.com/hello` | (any) | *On* | *On* | `www.example.com/hello` | `www.example.com/hello` | -| `example.com/%68ello` | (any) | *Off* | *Off* | `example.com/%68ello` | `example.com/%68ello` | -| `example.com/%68ello` | (any) | *On* | *Off* | `example.com/hello` | `example.com/%68ello` | -| `example.com/%68ello` | (any) | *On* | *On* | `example.com/hello` | `example.com/hello` | -| `example.com/%68ello//pa\th` | *RFC-3986* | *Off* | *Off* | `example.com/%68ello//pa\th` | `example.com/%68ello//pa\th` | -| `example.com/%68ello//pa\th` | *RFC-3986* | *On* | *Off* | `example.com/hello//pa%5Cth` | `example.com/%68ello//pa\th` | -| `example.com/%68ello//pa\th` | *RFC-3986* | *On* | *On* | `example.com/hello//pa%5Cth` | `example.com/hello//pa%5Cth` | -| `example.com/%68ello//pa\th` | *Cloudflare* | *Off* | *Off* | `example.com/%68ello//pa\th` | `example.com/%68ello//pa\th` | -| `example.com/%68ello//pa\th` | *Cloudflare* | *On* | *Off* | `example.com/hello/pa/th` | `example.com/%68ello//pa\th` | -| `example.com/%68ello//pa\th` | *Cloudflare* | *On* | *On* | `example.com/hello/pa/th` | `example.com/hello/pa/th` | -| `example.com/hello//../path` | *RFC-3986* | *On* | *On* | `example.com/hello/path` | `example.com/hello/path` | -| `example.com/hello//../path` | *Cloudflare* | *On* | *On* | `example.com/path` | `example.com/path` | -| `example.com/hello/\../path` | *RFC-3986* | *On* | *On* | `example.com/hello/%5C../path` | `example.com/hello/%5C../path` | -| `example.com/hello/\../path` | *Cloudflare* | *On* | *On* | `example.com/path` | `example.com/path` | - +| `www.example.com/hello` | (any) | _Off_ | _Off_ | `www.example.com/hello` | `www.example.com/hello` | +| `www.example.com/hello` | (any) | _On_ | _Off_ | `www.example.com/hello` | `www.example.com/hello` | +| `www.example.com/hello` | (any) | _On_ | _On_ | `www.example.com/hello` | `www.example.com/hello` | +| `example.com/%68ello` | (any) | _Off_ | _Off_ | `example.com/%68ello` | `example.com/%68ello` | +| `example.com/%68ello` | (any) | _On_ | _Off_ | `example.com/hello` | `example.com/%68ello` | +| `example.com/%68ello` | (any) | _On_ | _On_ | `example.com/hello` | `example.com/hello` | +| `example.com/%68ello//pa\th` | _RFC-3986_ | _Off_ | _Off_ | `example.com/%68ello//pa\th` | `example.com/%68ello//pa\th` | +| `example.com/%68ello//pa\th` | _RFC-3986_ | _On_ | _Off_ | `example.com/hello//pa%5Cth` | `example.com/%68ello//pa\th` | +| `example.com/%68ello//pa\th` | _RFC-3986_ | _On_ | _On_ | `example.com/hello//pa%5Cth` | `example.com/hello//pa%5Cth` | +| `example.com/%68ello//pa\th` | _Cloudflare_ | _Off_ | _Off_ | `example.com/%68ello//pa\th` | `example.com/%68ello//pa\th` | +| `example.com/%68ello//pa\th` | _Cloudflare_ | _On_ | _Off_ | `example.com/hello/pa/th` | `example.com/%68ello//pa\th` | +| `example.com/%68ello//pa\th` | _Cloudflare_ | _On_ | _On_ | `example.com/hello/pa/th` | `example.com/hello/pa/th` | +| `example.com/hello//../path` | _RFC-3986_ | _On_ | _On_ | `example.com/hello/path` | `example.com/hello/path` | +| `example.com/hello//../path` | _Cloudflare_ | _On_ | _On_ | `example.com/path` | `example.com/path` | +| `example.com/hello/\../path` | _RFC-3986_ | _On_ | _On_ | `example.com/hello/%5C../path` | `example.com/hello/%5C../path` | +| `example.com/hello/\../path` | _Cloudflare_ | _On_ | _On_ | `example.com/path` | `example.com/path` | diff --git a/src/content/docs/rules/normalization/how-it-works.mdx b/src/content/docs/rules/normalization/how-it-works.mdx index 38761fc471c9012..5958856bb932ad8 100644 --- a/src/content/docs/rules/normalization/how-it-works.mdx +++ b/src/content/docs/rules/normalization/how-it-works.mdx @@ -1,12 +1,9 @@ --- -title: How it works +title: How URL normalization works pcx_content_type: concept sidebar: order: 3 -head: - - tag: title - content: How URL normalization works - + label: How it works --- URL normalization modifies separators, encoded elements, and literal bytes in incoming URLs so that they conform to a consistent formatting standard. @@ -15,8 +12,8 @@ For example, consider a WAF custom rule that blocks requests whose URLs match `w The two available types of URL normalization are: -* [RFC 3986 normalization](#rfc-3986-normalization) -* [Cloudflare normalization](#cloudflare-normalization) +- [RFC 3986 normalization](#rfc-3986-normalization) +- [Cloudflare normalization](#cloudflare-normalization) The location where URL normalization will occur depends on the [configured settings](/rules/normalization/settings/). @@ -26,14 +23,14 @@ For examples of the different settings and their impact on request URLs, refer t The URL normalization performed according to [RFC 3986](https://www.ietf.org/rfc/rfc3986.txt) is as follows: -* The following unreserved characters are [percent decoded](https://tools.ietf.org/html/rfc3986#section-2.1): - * Alphabetical characters: `a`-`z`, `A`-`Z` (decoded from `%41`-`%5A` and `%61`-`%7A`) - * Digit characters: `0`-`9` (decoded from `%30`-`%39`) - * hyphen `-` (`%2D`), period `.` (`%2E`), underscore `_` (`%5F`), and tilde `~` (`%7E`) -* These reserved characters are not encoded or decoded: `: / ? # [ ] @ ! $ & ' ( ) * + , ; =` -* Other characters, for example literal byte values, are percent encoded. -* Percent encoded representations are converted to upper case. -* URL paths are normalized according to the [Remove Dot Segments](https://tools.ietf.org/html/rfc3986#section-5.2.4) protocol. +- The following unreserved characters are [percent decoded](https://tools.ietf.org/html/rfc3986#section-2.1): + - Alphabetical characters: `a`-`z`, `A`-`Z` (decoded from `%41`-`%5A` and `%61`-`%7A`) + - Digit characters: `0`-`9` (decoded from `%30`-`%39`) + - hyphen `-` (`%2D`), period `.` (`%2E`), underscore `_` (`%5F`), and tilde `~` (`%7E`) +- These reserved characters are not encoded or decoded: `: / ? # [ ] @ ! $ & ' ( ) * + , ; =` +- Other characters, for example literal byte values, are percent encoded. +- Percent encoded representations are converted to upper case. +- URL paths are normalized according to the [Remove Dot Segments](https://tools.ietf.org/html/rfc3986#section-5.2.4) protocol. ## Cloudflare normalization diff --git a/src/content/docs/rules/normalization/index.mdx b/src/content/docs/rules/normalization/index.mdx index b5414c2f1f4ee02..b9912f9cd907874 100644 --- a/src/content/docs/rules/normalization/index.mdx +++ b/src/content/docs/rules/normalization/index.mdx @@ -3,10 +3,9 @@ pcx_content_type: concept title: URL normalization sidebar: order: 11 - --- -import { GlossaryTooltip, Render } from "~/components" +import { GlossaryTooltip, Render } from "~/components"; Cloudflare provides a URL normalization feature to modify the URLs of incoming requests so that they conform to a consistent formatting standard. @@ -14,14 +13,17 @@ When you enable URL normalization, all incoming URLs are normalized before they :::caution -When traffic is proxied via Cloudflare, essential request URL normalization is always applied regardless whether URL normalization is enabled for a specific zone. For example, you cannot disable the conversion of two or more adjacent slashes into a single slash in a request URL by turning off URL normalization. +When traffic is proxied via Cloudflare, essential request URL normalization is always applied regardless whether URL normalization is enabled for a specific zone. For example, you cannot disable the conversion of two or more adjacent slashes into a single slash in a request URL by turning off URL normalization. ::: URL normalization does not perform any redirects, and therefore it will not change the address displayed in the visitor's browser. The normalization operation, when enabled, occurs on the global network and affects Cloudflare features executed later and (optionally) the URL received at the origin server. - + -*** +--- ## Availability diff --git a/src/content/docs/rules/normalization/manage.mdx b/src/content/docs/rules/normalization/manage.mdx index 2657cd07a3433f9..47ddf62d043d35b 100644 --- a/src/content/docs/rules/normalization/manage.mdx +++ b/src/content/docs/rules/normalization/manage.mdx @@ -1,19 +1,16 @@ --- -title: Configure in the dashboard +title: Configure URL normalization in the dashboard pcx_content_type: how-to sidebar: order: 4 -head: - - tag: title - content: Configure URL normalization in the dashboard + label: Configure in the dashboard description: How to configure URL normalization in the Cloudflare dashboard. - --- 1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/), and select your account and website. -2. Go to **Rules** > **Settings**. +2. Go to **Rules** > **URL Normalization**. - ![Available URL normalization settings in the Cloudflare dashboard](~/assets/images/rules/normalization/url-normalization-settings.png) +3. Configure the [available URL normalization settings](/rules/normalization/settings/). -3. Under **Configure Normalization**, configure the [available URL normalization settings](/rules/normalization/settings/). + ![Available URL normalization settings in the Cloudflare dashboard](~/assets/images/rules/normalization/url-normalization-settings.png) diff --git a/src/content/docs/rules/normalization/settings.mdx b/src/content/docs/rules/normalization/settings.mdx index c61fec8ef8072f7..2dc9dfd762a139c 100644 --- a/src/content/docs/rules/normalization/settings.mdx +++ b/src/content/docs/rules/normalization/settings.mdx @@ -1,42 +1,35 @@ --- -title: Settings +title: URL normalization settings pcx_content_type: reference sidebar: order: 5 -head: - - tag: title - content: URL normalization settings - + label: Settings --- The Cloudflare dashboard provides the following settings to manage URL normalization: +- **Normalization type** (default: _RFC-3986_) + - Selects the type of normalization to perform: -* **Normalization type** (default: *RFC-3986*) - - * Selects the type of normalization to perform: - - * *RFC-3986* – Applies URL normalization strictly according to [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). - - * *Cloudflare* – In addition to what is defined in RFC 3986, applies [extra URL normalization techniques](/rules/normalization/how-it-works/#cloudflare-normalization). - -* **Normalize incoming URLs** (default: *On*) + - _RFC-3986_ – Applies URL normalization strictly according to [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). - * Configures the URLs of all incoming traffic to Cloudflare: + - _Cloudflare_ – In addition to what is defined in RFC 3986, applies [extra URL normalization techniques](/rules/normalization/how-it-works/#cloudflare-normalization). - * When enabled, all incoming URLs are normalized before they pass to subsequent Cloudflare features that can receive a URL as input, such as Page Rules, WAF custom rules, Workers, and Access. - * When disabled, incoming URLs are not normalized before passing to subsequent Cloudflare features. +- **Normalize incoming URLs** (default: _On_) -* **Normalize URLs to origin** (default: *Off*) + - Configures the URLs of all incoming traffic to Cloudflare: - * Configures URLs sent to the origin: + - When enabled, all incoming URLs are normalized before they pass to subsequent Cloudflare features that can receive a URL as input, such as Page Rules, WAF custom rules, Workers, and Access. + - When disabled, incoming URLs are not normalized before passing to subsequent Cloudflare features. - * When enabled, requests sent to the origin are normalized. - * When disabled, requests sent to the origin are not modified. +- **Normalize URLs to origin** (default: _Off_) - * You can only view and enable this option when **Normalize incoming URLs** is enabled. + - Configures URLs sent to the origin: + - When enabled, requests sent to the origin are normalized. + - When disabled, requests sent to the origin are not modified. + - You can only view and enable this option when **Normalize incoming URLs** is enabled. For examples of how these settings affect URL normalization, refer to the [URL normalization examples](/rules/normalization/examples/). From eb5d8b1923ea9bdd9f41509f9c0ca0eb454a91b7 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Tue, 5 Nov 2024 14:01:30 +0000 Subject: [PATCH 2/3] Update Bulk Redirects --- .../bulk-redirects/create-api.mdx | 6 ++-- .../bulk-redirects/create-dashboard.mdx | 30 +++++++++++-------- .../bulk-redirects/how-it-works.mdx | 6 ++-- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx b/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx index fd259ef0edbddf6..00277f6f9b86482 100644 --- a/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx +++ b/src/content/docs/rules/url-forwarding/bulk-redirects/create-api.mdx @@ -1,11 +1,9 @@ --- pcx_content_type: how-to -title: Create via API +title: Create Bulk Redirects via API sidebar: order: 7 -head: - - tag: title - content: Create Bulk Redirects via API + label: Create via API description: Learn how to create Bulk Redirects using the Cloudflare API. --- diff --git a/src/content/docs/rules/url-forwarding/bulk-redirects/create-dashboard.mdx b/src/content/docs/rules/url-forwarding/bulk-redirects/create-dashboard.mdx index 0c9c3651c4c34d8..20e452fc4dcfce2 100644 --- a/src/content/docs/rules/url-forwarding/bulk-redirects/create-dashboard.mdx +++ b/src/content/docs/rules/url-forwarding/bulk-redirects/create-dashboard.mdx @@ -1,22 +1,29 @@ --- pcx_content_type: how-to -title: Create in the dashboard +title: Create Bulk Redirects in the dashboard sidebar: order: 6 -head: - - tag: title - content: Create Bulk Redirects in the dashboard - + label: Create in the dashboard --- -import { Details, Render } from "~/components" +import { Details, Render } from "~/components"; To create Bulk Redirects in the Cloudflare dashboard you must: 1. Create a Bulk Redirect List with one or more URL redirects. 2. Create a Bulk Redirect Rule to enable the URL redirects in the list. - +You can create Bulk Redirect Lists and Bulk Redirect Rules in the Cloudflare dashboard: + +- At the account level, in **Bulk Redirects**. +- At the zone level, in **Rules** > **Redirect Rules** (**Bulk Redirects** tab). + +However, the lists and rules only exist at the account level and every zone in the same account will show the same items. + + ## 1. Create a Bulk Redirect List @@ -30,7 +37,6 @@ To create Bulk Redirects in the Cloudflare dashboard you must: 5. You can import a CSV file containing several URL redirects or enter URL redirects one at a time in the dashboard. -
6. Drag and drop a CSV file containing URL redirects or select **browse** and select a CSV file. For more information on the file format, refer to [CSV file format](/rules/url-forwarding/bulk-redirects/reference/csv-file-format/). @@ -39,10 +45,8 @@ To create Bulk Redirects in the Cloudflare dashboard you must: 8. Select **Next**. -
-
9. Select **Or, manually add URL redirects**. @@ -53,7 +57,6 @@ To create Bulk Redirects in the Cloudflare dashboard you must: 12. Select **Next**. -
13. Review and edit the URL redirects you imported or created, and select **Next**. @@ -61,12 +64,15 @@ To create Bulk Redirects in the Cloudflare dashboard you must: 14. Select **Continue to Redirect Rules** to go to the rule creation page, and follow the instructions in the next section. You must create a Bulk Redirect Rule to enable the URL redirects you defined. :::note[Notes] - + + + ::: ## 2. Create a Bulk Redirect Rule 1. (Optional) If you are not using the Bulk Redirect List creation wizard according to the instructions in the previous section: + 1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account. 2. Go to Account Home > **Bulk Redirects**. 3. Select **Create Bulk Redirect Rule**. diff --git a/src/content/docs/rules/url-forwarding/bulk-redirects/how-it-works.mdx b/src/content/docs/rules/url-forwarding/bulk-redirects/how-it-works.mdx index cccba6a495128f5..79f2b9d4fd16095 100644 --- a/src/content/docs/rules/url-forwarding/bulk-redirects/how-it-works.mdx +++ b/src/content/docs/rules/url-forwarding/bulk-redirects/how-it-works.mdx @@ -1,11 +1,9 @@ --- -title: How it works +title: How Bulk Redirects work pcx_content_type: concept sidebar: order: 4 -head: - - tag: title - content: How Bulk Redirects work + label: How it works --- For each incoming request, Cloudflare evaluates all URL redirects of each Bulk Redirect List that is enabled by a Bulk Redirect Rule. From c20b332e91e96259872b9d87b798a909981ff072 Mon Sep 17 00:00:00 2001 From: Pedro Sousa <680496+pedrosousa@users.noreply.github.com> Date: Tue, 5 Nov 2024 14:34:03 +0000 Subject: [PATCH 3/3] Update Single Redirects --- .../rules/url-forwarding/single-redirects/create-api.mdx | 6 ++---- .../url-forwarding/single-redirects/create-dashboard.mdx | 8 +++----- .../rules/url-forwarding/single-redirects/settings.mdx | 6 ++---- .../single-redirects/terraform-example.mdx | 9 +++------ 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx b/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx index 14fe18604572f16..256685b1e56f3a7 100644 --- a/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx +++ b/src/content/docs/rules/url-forwarding/single-redirects/create-api.mdx @@ -1,11 +1,9 @@ --- pcx_content_type: how-to -title: Create rule via API +title: Create a redirect rule via API sidebar: order: 3 -head: - - tag: title - content: Create a redirect rule via API + label: Create rule via API --- import { Details, Render } from "~/components"; diff --git a/src/content/docs/rules/url-forwarding/single-redirects/create-dashboard.mdx b/src/content/docs/rules/url-forwarding/single-redirects/create-dashboard.mdx index d8527f59bae3e77..b2a773570322685 100644 --- a/src/content/docs/rules/url-forwarding/single-redirects/create-dashboard.mdx +++ b/src/content/docs/rules/url-forwarding/single-redirects/create-dashboard.mdx @@ -1,18 +1,16 @@ --- pcx_content_type: how-to -title: Create rule in the dashboard +title: Create a redirect rule in the dashboard sidebar: order: 2 -head: - - tag: title - content: Create a redirect rule in the dashboard + label: Create rule in the dashboard --- import { Render } from "~/components"; 1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account and domain. 2. Go to **Rules** > **Redirect Rules**. -3. To create a new empty redirect rule, select **Create rule**. To duplicate an existing rule, select the three dots next to it > **Duplicate**. +3. In the **Single Redirects** tab, select **Create rule** to create a new empty rule. To duplicate an existing rule, select the three dots next to it > **Duplicate**. 4. (Optional) Select one of the rule templates that address common use cases. Then, review and adjust the proposed rule configuration. 5. Enter a descriptive name for the rule in **Rule name**. 6. Under **When incoming requests match**, select one of the following options: diff --git a/src/content/docs/rules/url-forwarding/single-redirects/settings.mdx b/src/content/docs/rules/url-forwarding/single-redirects/settings.mdx index 04cb7ef7841ace2..fcffaecce39ce33 100644 --- a/src/content/docs/rules/url-forwarding/single-redirects/settings.mdx +++ b/src/content/docs/rules/url-forwarding/single-redirects/settings.mdx @@ -1,11 +1,9 @@ --- -title: Available settings +title: Available redirect rules settings pcx_content_type: reference sidebar: order: 10 -head: - - tag: title - content: Available redirect rules settings + label: Available settings --- import { Details, Render } from "~/components"; diff --git a/src/content/docs/rules/url-forwarding/single-redirects/terraform-example.mdx b/src/content/docs/rules/url-forwarding/single-redirects/terraform-example.mdx index 0b0707c82c0eb00..98ab89f81143656 100644 --- a/src/content/docs/rules/url-forwarding/single-redirects/terraform-example.mdx +++ b/src/content/docs/rules/url-forwarding/single-redirects/terraform-example.mdx @@ -1,15 +1,12 @@ --- -title: Create rule using Terraform +title: Create a redirect rule using Terraform pcx_content_type: configuration sidebar: order: 4 -head: - - tag: title - content: Create a redirect rule using Terraform - + label: Create rule using Terraform --- -import { Render } from "~/components" +import { Render } from "~/components"; The following example defines a single redirect rule for a zone using Terraform. The rule creates a static URL redirect for visitors requesting the contacts page using an old URL.