# Chrome: This page isn’t working — example.com redirected you too many times. ERR_TOO_MANY_REDIRECTS

**Code:** `ERR_TOO_MANY_REDIRECTS` · **Category:** Browser · **Seen on:** Chrome, Edge, Nginx, Apache

The page keeps redirecting to itself or in a loop, so the browser gives up after about 20 redirects.

## Meaning

A redirect loop is created by two rules that undo each other: HTTP→HTTPS plus HTTPS→HTTP behind a proxy, www/non-www pairs, a login redirect that is not recognised because the cookie is blocked, or a CMS site URL that differs from the real one. Visitors can clear the site's cookies; owners must fix the redirect rules.

## Common causes

- HTTPS redirect loop behind a proxy/CDN (server thinks the request is HTTP)
- Conflicting www ⇄ non-www or trailing-slash rules
- Login or consent redirect that never sees its cookie (blocked/expired cookie)
- WordPress siteurl/home mismatch or a redirect plugin
- Cloudflare SSL mode "Flexible" with an HTTPS-only origin

## Quick fix

1. Visitors: clear cookies for that site and try again
2. Owners: trace the chain with `curl -IL` and remove the rule that points back
3. Make the app trust `X-Forwarded-Proto: https` from your proxy

## Detailed fix by platform

### Linux

1. `curl -sIL --max-redirs 10 https://example.com | grep -i -E "^(HTTP|location)"` shows each hop and where it loops

### Nginx

1. Behind a TLS-terminating proxy pass the scheme: `proxy_set_header X-Forwarded-Proto $scheme;` and do not redirect when it is already `https`

### Apache

1. Check `.htaccess` for rules like `RewriteCond %{HTTPS} off` combined with a proxy; use `%{HTTP:X-Forwarded-Proto}` instead

## Code examples

### Find the loop

```bash
curl -sIL --max-redirs 8 http://example.com/ | grep -i -E '^(HTTP|location)'
# HTTP/1.1 301  Location: https://example.com/
# HTTP/2 301    Location: http://example.com/     <- sends the browser back to HTTP: loop
```

## How to diagnose

1. **Chain** — What do the Location headers show?
2. **Cookies** — Does clearing site cookies help?
3. **Proxy** — HTTPS terminated before the app?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/browser/err-too-many-redirects)
