«Demasiadas redirecciones» quiere decir que dos reglas no se ponen de acuerdo y cada una deshace a la otra: una manda http a https, otra cosa devuelve https a http, y el navegador se rinde después de veinte idas y vueltas.

Vea la cadena

No adivine desde el navegador. Imprima cada salto con su estado y su destino.

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

La pareja que se repite en esa salida es la pelea. Nombra a los dos bandos.

Las cuatro parejas que lo provocan

  • Una dirección del sitio en el gestor que contradice al servidor. WordPress puesto en http mientras el servidor fuerza https: cada uno corrige al otro, para siempre.
  • Reglas de www y sin www que se apuntan la una a la otra. Elija un anfitrión canónico y deje que el otro redirija hacia él, una vez.
  • Un proxy delante que termina el TLS. El servidor ve http pelado, decide que el visitante necesita https y redirige una petición que ya es https. Tiene que leer X-Forwarded-Proto.
  • Una regla de barra final que la añade y otra que la quita.

WordPress en concreto

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

Fijar ambos en wp-config.php los clava y acaba con la pelea entre el valor de la base de datos y el servidor.

Detrás de un proxy o una CDN, añada $_SERVER["HTTPS"] = "on"; cuando X-Forwarded-Proto valga https, antes de que cargue WordPress. Sin eso, el sitio no puede saber que ya va seguro.
Vacíe la caché del navegador antes de probar. Un 301 se cachea a lo bruto, y seguirá viendo un bucle que ya no existe.