Learn how to set up URL forwarding or redirects with Cloudflare.
If you want to forward or redirect traffic to a different URL, you have two options using Cloudflare:
- Bulk Redirects (recommended): Should be used for most use cases due to ease of use, maintenance, and cost.
- Page Rules: Should only be used when Bulk Redirects do not meet your use case.
Redirect with Page Rules
To configure URL forwarding or redirects using Page Rules:
- Log into your Cloudflare account.
- Click the appropriate Cloudflare account for the domain where you want to add URL forwarding.
- Go to Rules > Page Rules.
- Under Page Rules, click Create Page Rule. The Create Page Rule for <your domain> dialog opens.
- Under If the URL matches, enter the URL or URL pattern that should match the rule.
- In Pick a Setting, choose Forwarding URL from the drop-down menu.
- For Select status code, choose 301 (Permanent Redirect) or 302 (Temporary Redirect).
- Enter the destination URL.
- To finish, click Save and Deploy.
Imagine you want site visitors to easily reach your website for a variety of URL patterns. For instance, the Page Rule URL patterns *www.example.com/products and *example.com/products match:
http://example.com/products http://www.example.com/products https://www.example.com/products https://blog.example.com/products https://www.blog.example.com/productsbut do not match:
http://www.example.com/blog/products (extra directory before the +) or http://www.example.comproducts (no trailing slash)Once you have created the pattern that matches what you want, click the Forwarding toggle. That exposes a field where you can enter the address I want requests forwarded to.
https://example.com/productsIf I enter the address above in the forwarding box and click Add Rule, within a few seconds any requests that match the pattern I entered will automatically be forwarded with a 302 Redirect to the new URL.
Advanced forwarding options
If you use a basic redirect, such as forwarding the root domain to www.example.com, then you lose anything else in the URL.
For example, you could set up the pattern:\
example.comAnd have it forward to:
http://www.example.comHowever, if someone entered: example.com/some-particular-page.html They would be redirected to:
www.example.com/some-particular-page.htmlThe solution is to use variables. Each wildcard corresponds to a variable when can be referenced in the forwarding address. The variables are represented by a $ followed by a number. To refer to the first wildcard you'd use $1, to refer to the second wildcard you'd use $2, and so on.
To fix the forwarding from the root to www in the above example, you could use the same pattern:
example.com/*You'd then set up the following URL for traffic to forward to:
http://www.example.com/$1In this case, if someone went to:
example.com/some-particular-page.htmlThey'd be redirected to: