«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.