When incoming requests match
Using the Expression Editor:
(http.request.full_uri contains "www.example.com")
Then
- Type: Dynamic
- Expression:
concat("https://","example.com",http.request.uri.path)
- Status code: 301
Once you have added your domain to Cloudflare and updated your nameservers, you also might want to set up a subdomain.
Most subdomains serve a specific purpose within the overall context of your website. For example, blog.example.com
might be your blog, support.example.com
could be your customer help portal, and store.example.com
would be your e-commerce site.
If you have already added a subdomain at your host, create a corresponding DNS A or CNAME record for that subdomain (blog
, store
).
Sometimes, you might want all traffic to a subdomain (www.example.com
) to actually go to your apex domain (example.com
).
Create a proxied DNS A record for your subdomain. This record can point to any IP address since all traffic will be redirected prior to reaching the address.
Type | Name | IPv4 address | Proxy status |
---|---|---|---|
A | www | 192.0.2.1 | Proxied |
Create a Single Redirect to forward traffic from your subdomain to your apex domain.
When incoming requests match
Using the Expression Editor:
(http.request.full_uri contains "www.example.com")
Then
concat("https://","example.com",http.request.uri.path)
Sometimes, you might want all traffic to your apex domain (example.com
) to actually go to a subdomain (www.example.com
).
If you have already added that subdomain at your host, create a corresponding DNS A or CNAME record for that subdomain.
Create a proxied DNS A record for your apex domain. This record can point to any IP address since all traffic will be redirected prior to reaching the address.
Type | Name | IPv4 address | Proxy status |
---|---|---|---|
A | @ | 192.0.2.1 | Proxied |
Create a Single Redirect to forward traffic from your apex domain to your subdomain.
When incoming requests match
Using the Expression Editor:
(lower(http.host) eq "example.com")
Then
concat("https://","www.example.com",http.request.uri.path)
If your main domain is using Cloudflare's Universal SSL certificate, that certificate also covers all first-level subdomains (blog.example.com
).
For deeper subdomains (dev.blog.example.com
), use a different type of certificate.
If you want to customize Cloudflare settings for individual subdomains, your approach will vary depending on your plan.
Enterprise customers can set up custom settings and access for a specific subdomain within Cloudflare with Subdomain support.
All other customers can set up subdomain-specific Configuration Rules or Page Rules to alter Cloudflare settings.
If you want a subdomain's DNS settings managed totally outside of Cloudflare — meaning this subdomain can be managed by individuals without access to your Cloudflare account — refer to Delegating subdomains outside of Cloudflare.