How to Fix Trailing Slash Redirect Loops in Next.js App Router
When configuring trailing slash normalization in Next.js, setting trailingSlash: true in next.config.mjs while also handling path rewrites, reverse proxies (Cloudflare / AWS CloudFront), or custom middleware redirects can trigger cyclical 308 Permanent Redirect loops (e.g., /blog -> /blog/ -> /blog). This breaks search bot crawlers, triggers redirect error penalties in Google Search Console, and crashes client navigation.