Cloudflare Docs
Rules
Rules
Edit this page
Report an issue with this page
Log into the Cloudflare dashboard
Set theme to dark (⇧+D)

Perform mobile redirects

The following examples will redirect visitors using mobile devices — based on the request user agent string — to a different hostname.

​​ Redirect mobile users dropping the original URI path

This example static redirect will redirect requests for the current zone (example.com) from mobile users to m.example.com without preserving the URI path in the original HTTP request.

When incoming requests match

  • Enter the following expression in the Expression Editor:
    not http.host in {"m.example.com"} and (http.user_agent contains "mobi" or http.user_agent contains "Mobi")

Then

  • Type: Static
  • URL: m.example.com
  • Status code: 301

Notes about this example:

  • The not http.host in {"m.example.com"} condition prevents redirect loops.
  • The user agent condition follows Mozilla’s recommendation for identifying mobile devices.
  • The Then > URL value should be the same as the one you entered in the http.host condition of the rule’s filter expression.
  • You can redirect users to other zones on Cloudflare or to other hostnames not on Cloudflare.

​​ Redirect mobile users keeping the original path

This example dynamic redirect will redirect requests for the current zone (example.com) from mobile users to m.example.com, keeping the URI path of the original HTTP request.

When incoming requests match

  • Enter the following expression in the Expression Editor:
    not http.host in {"m.example.com"} and (http.user_agent contains "mobi" or http.user_agent contains "Mobi")

Then

  • Type: Dynamic
  • Expression: concat("https://m.example.com", http.request.uri.path)
  • Status code: 301

Notes about this example:

  • The not http.host in {"m.example.com"} condition prevents redirect loops.
  • The user agent condition follows Mozilla’s recommendation for identifying mobile devices.
  • The hostname in Then > Expression should be the same as the one you entered in the http.host condition of the rule’s filter expression.
  • Depending on your use case, you may want to enable Then > Preserve query string to also keep the query string of the original request.
  • You can redirect users to other zones on Cloudflare or to other hostnames not on Cloudflare.