Joomla has a built-in "Force HTTPS" option under System → Global Configuration → Server. Once your certificate is installed, set it to "Entire Site" — but this is also where most redirect loops start.
Why the redirect loop happens
If your host sits behind a load balancer, proxy, or Cloudflare, Joomla may not correctly detect that the incoming request is already HTTPS. It sees what looks like an HTTP request, redirects to HTTPS, and the proxy hands it back the same way — looping forever.
The fix
- Add to configuration.php:
$live_site = 'https://yourdomain.com';if it isn't already set correctly. - If you're behind Cloudflare, set SSL/TLS mode to "Full" or "Full (Strict)", not "Flexible".
- Add proxy-awareness to .htaccess:
RewriteCond %{HTTP:X-Forwarded-Proto} !httpsbefore your redirect rule.
Test in a private browser window after each change — cached redirect loops will persist in your regular browser even after the fix is live.