Subject: Redirect visitors based on User-Agent (e.g., MSIE 8.0)
Direct Response
While Cloudflare Page Rules cannot redirect by User-Agent, you can achieve this with Workers or at your origin:
- Cloudflare Worker: Inspect
request.headers.get('user-agent')and issue a redirect. - Origin server: Add rules (nginx/express) to redirect based on UA.
- Transform Rules or Firewall Rules: Limited options, but Workers are the most flexible solution.
Thought Process
Page Rules only match URLs. Workers can run logic on each request and modify responses. This is the recommended way to redirect based on headers like User-Agent.
Tools Used
- Cloudflare Workers — to implement custom logic at the edge.
- curl — to test with different User-Agents (e.g.,
curl -A "MSIE 8.0" -I https://example.com).
Example Worker
addEventListener('fetch', event => {
const ua = event.request.headers.get('user-agent') || '';
if (ua.includes('MSIE 8.0')) {
event.respondWith(Response.redirect('https://example.com/legacy', 302));
} else {
event.respondWith(fetch(event.request));
}
});