URL normalization settings
The Cloudflare dashboard provides the following settings to manage URL normalization:
-
Normalization type
-
Selects the type of normalization to perform:
-
RFC-3986 – Applies URL normalization strictly according to RFC 3986.
-
Cloudflare – In addition to what is defined in RFC 3986, applies the following URL normalization techniques:
- Normalize back slashes (
\
) into forward slashes (/
). - Merge successive forward slashes (for example,
//
will be normalized to/
).
- Normalize back slashes (
-
-
-
Normalize incoming URLs
-
Configures the URLs of all incoming traffic to Cloudflare:
- 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, Firewall Rules, Workers, and Access.
- When disabled, incoming URLs are not normalized before passing to subsequent Cloudflare features.
-
-
Normalize URLs to origin
-
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.
-
Configuration examples
The following table shows how URL normalization settings affect incoming URLs before they pass to other Cloudflare features and to origin:
Incoming URL | Normalization type | Normalize incoming URLs | Normalize URLs to origin | URL passed to Cloudflare edge | URL passed to origin |
---|---|---|---|---|---|
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\th |
example.com/%68ello//pa\th |
example.com/%68ello//pa\th |
RFC-3986 | On | On | example.com/hello//pa\th |
example.com/hello//pa\th |
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 |