"Troppi reindirizzamenti" vuol dire che due regole non vanno d'accordo e si disfano a vicenda: una manda http su https, qualcos'altro rimanda https su http, e il browser si arrende dopo venti andate e ritorni.

Veda la catena

Non tiri a indovinare dal browser. Stampi ogni salto con il suo stato e la sua destinazione.

curl -sIL https://yourdomain.com | grep -E "HTTP/|location:"

La coppia che si ripete in quell'output è il litigio. Nomina entrambe le parti.

Le quattro coppie che lo provocano

  • Un indirizzo del sito nel CMS che contraddice il server. WordPress impostato su http mentre il server impone https: ciascuno corregge l'altro, per sempre.
  • Regole www e senza-www che si puntano a vicenda. Scelga un host canonico e lasci che l'altro vi reindirizzi, una volta.
  • Un proxy davanti che termina il TLS. Il server vede http nudo, decide che il visitatore ha bisogno di https e reindirizza una richiesta che è già https. Deve leggere X-Forwarded-Proto.
  • Una regola sulla barra finale che la aggiunge e un'altra che la toglie.

WordPress in particolare

define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');

Impostare entrambi in wp-config.php li inchioda e fa cessare la lite fra il valore nel database e il server.

Dietro un proxy o una CDN, aggiunga $_SERVER["HTTPS"] = "on"; quando X-Forwarded-Proto vale https, prima che WordPress si carichi. Senza, il sito non può capire di essere già sicuro.
Svuoti la cache del browser prima di provare. Un 301 viene messo in cache in modo tenace, e continuerebbe a vedere un ciclo che non esiste più.