Bucle de redirección https en WordPress wp-admin

3 dic 2014, 07:57:53
Vistas: 103K
Votos: 79

Estoy usando nginx como servidor web y he editado el archivo de configuración para apuntar a https, así que cambié la configuración de URL de WordPress a https y también agregué el código de forzado de ssl admin de WordPress a mi archivo wp-config, pero sigo encontrándome con el error "Esta página web tiene un bucle de redirección"

Error de bucle de redirección en navegador Chrome

0
Todas las respuestas a la pregunta 10
17
137

¿Has agregado $_SERVER['HTTPS'] = 'on'; a tu archivo wp-config.php?

También deberías usar el plugin WP Migrate DB para migrar de http://tusitio.com a https://tusitio.com

25 feb 2015 21:01:26
Comentarios

¡Te daría 1000 votos positivos por esto!

Sheharyar Sheharyar
17 ene 2016 23:56:07

Por alguna razón, este paso vital a menudo no se incluye.

Tania Rascia Tania Rascia
27 ene 2016 08:47:17

¡Gracias! Probablemente me ahorraste unas cuantas horas más tratando de averiguar por qué el área de administración no funcionaba con SSL.

Sledge Hammer Sledge Hammer
20 feb 2016 19:42:04

eso es genial, el único problema es: ¿cómo instalas el plugin si el sitio web no funciona? :) Sé que siempre debes hacer una copia de seguridad antes de hacer cosas como esta, pero aún así. La solución siguiente funcionó para mí :)

Timur Gafforov Timur Gafforov
22 sept 2016 11:09:01

¡guau! $_SERVER['HTTPS'] = 'on'; ¡me salvó!

PJunior PJunior
3 feb 2017 19:13:36

¿Por qué funciona esto? Ya usé la herramienta de búsqueda y reemplazo de Interconnect. Ya debería tener el protocolo correcto en la base de datos.

Jeff Jeff
15 feb 2017 22:28:35

la declaración if en la documentación no funcionó para mí, así que simplemente siempre establezco $_SERVER['HTTPS'] = 'on';

lewis lewis
13 abr 2017 19:38:53

Después de agregar $_SERVER['HTTPS']='on'; a wp-config.php, recibo el mensaje Lo sentimos, no tienes permiso para acceder a esta página. en la página /wp-admin aunque inicié sesión como administrador. Uso Cloudflare flexible SSL por lo que el tráfico HTTPS se envía al puerto HTTP.

baptx baptx
21 dic 2017 14:41:11

Tenemos que agregar if strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; } antes de require_once(ABSPATH . 'wp-settings.php'); como se menciona aquí: https://wordpress.stackexchange.com/questions/250240/setting-serverhttps-on-prevents-access-to-wp-admin#comment414886_250254 https://wordpress.stackexchange.com/questions/262194/cannot-login-to-wordpress-admin-with-ssl-terminated-load-balancer/263461#263461

baptx baptx
21 dic 2017 14:41:50

Lamento añadir otro comentario sobre cómo $_SERVER['HTTPS'] = 'on'; me salvó, pero efectivamente también solucionó todos mis problemas de redirección. Probé todos los cambios posibles en nginx.conf junto con remove_filter('template_redirect', 'redirect_canonical'); lo cual funcionó pero solo para la página de inicio. El $_SERVER['HTTPS'] = 'on' lo arregló todo inmediatamente. ¡¡¡Muchas gracias!!!!

Daniel Daniel
15 mar 2018 04:30:44

Gracias por esto. Esto funcionó después de 2 horas probando otras soluciones.

hypern00b hypern00b
31 mar 2018 06:25:42

+10000, me estaba rompiendo la cabeza preguntándome por qué el SSL rompió mi área de administración y las URLs de inclusión de páginas

Wobbles Wobbles
17 may 2018 16:34:30

¡Muchas gracias! Horas de búsqueda finalmente me llevan al lugar correcto.

Foxan Ng Foxan Ng
6 jun 2018 08:34:34

¡¡GRACIAS!! Esto es esencial para Cloudflare y debería venir como parte del tutorial.

Sprachprofi Sprachprofi
5 jul 2018 21:08:38

¡Eres un genio! Muchísimas gracias. Pasé tantas horas tratando de resolver esto. Me sacaste de un bucle sin fin. ¡Gracias!!

SequenceDigitale.com SequenceDigitale.com
22 jul 2018 20:18:14

¡Muchas gracias! $_SERVER['HTTPS'] = 'on'; funcionó para mí.

Komal Komal
20 oct 2018 09:18:40

proxy_set_header X-Forwarded-Proto https; también funcionó para mí. Gracias por la respuesta.

oliver nadj oliver nadj
18 oct 2023 14:32:16
Mostrar los 12 comentarios restantes
6
76

Tuve un problema similar y simplemente agregué el siguiente fragmento a mi archivo wp-config.php:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// en algunas configuraciones HTTP_X_FORWARDED_PROTO podría contener  
// una lista separada por comas, ej. http,https  
// así que verificamos la existencia de https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

como se sugiere en el Codex. Esto solo será necesario en caso de que haya SSL passthrough habilitado en la configuración de tu balanceador de carga (o firewall). Esto significa que aunque puedas acceder al sitio mediante HTTP dentro de TLS/SSL, la comunicación que recibe tu servidor es solo HTTP. Para tener esto en cuenta, se necesita el encabezado anterior para que WordPress pueda "establecer" HTTPS como on en el arreglo de configuración $_SERVER.

16 mar 2016 22:27:58
Comentarios

Esta es una excelente solución especialmente para cualquiera que use un balanceador de carga. Estaba alojando esto usando Dokku (un clon de Heroku que puedes hospedar tú mismo) y tenía problemas con la carga de recursos estáticos y el bucle de redirección de wp-admin. Dokku también utiliza un proxy inverso de nginx para redirigir el tráfico entrante del puerto 443 al puerto 80 y esto soluciona el problema.

Zach McCormick Zach McCormick
6 jun 2016 17:54:57

Tuve que simplemente poner el $_SERVER['HTTPS'] = 'on'; porque HTTP_X_FORWARDED_PROTO ni siquiera está en la configuración del servidor de mi cliente :|

Tom Roggero Tom Roggero
23 ene 2017 19:11:44

Solucionó mi problema perfectamente al usar un balanceador de carga de AWS.

Josh Josh
12 abr 2017 18:27:46

Esto también solucionó el problema de "Demasiadas redirecciones" ya que mi sitio está detrás de un balanceador de carga en AWS.

voam voam
1 nov 2017 21:24:32

Creo que es importante agregar a esta respuesta la solución para el archivo .htaccess en estos casos: https://stackoverflow.com/questions/36748110/htaccess-too-many-redirects-when-trying-to-force-https, revisa la respuesta de @harshal-lonare.

Gustavo Jantsch Gustavo Jantsch
5 oct 2018 18:29:29

Solución elegante. ¡¡¡Gracias!!!

GTodorov GTodorov
13 jun 2023 00:34:28
Mostrar los 1 comentarios restantes
6
18

Como aún no tengo el privilegio de comentar, publicaré esta adición como otra respuesta:

La solución propuesta por Elias, de añadir lo siguiente al archivo wp-config.php, funcionó para mí:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// en algunas configuraciones HTTP_X_FORWARDED_PROTO puede contener  
// una lista separada por comas ej. http,https  
// así que verifica la existencia de https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

Sin embargo, solo funcionó para mí cuando lo coloqué antes que cualquier otra cosa en este archivo!

14 sept 2017 11:52:27
Comentarios

Esto era exactamente mi problema. Había puesto estos al final del archivo y no funcionaba. Estaba listo para reconstruir mi sitio desde cero. Los moví al principio y ¡bam!, problema resuelto. ¡Gracias, gracias!

Dean Poulin Dean Poulin
3 feb 2018 04:19:14

Esta solución es genial si estás usando un SSL flexible detrás de un DNS proxy como Cloudflare. Gracias.

Stefan P Stefan P
16 feb 2018 07:44:24

Confirmado que funciona. Muchas gracias, esto soluciona muchos problemas que teníamos con APIs e IFrames. El sitio no tiene HTTPS habilitado, pero necesitamos que algunas páginas lo tengan. WordPress debería tener esto como configuración por defecto...

Andy Andy
25 abr 2018 17:25:20

Para tu información - ese código puede ir en cualquier parte pero debe estar antes de require_once( ABSPATH . 'wp-settings.php' ); que se encuentra al final del archivo.

Damodar Bashyal Damodar Bashyal
20 sept 2019 03:42:21

Esto funciona, gracias

Mohammed Tawfik Mohammed Tawfik
28 abr 2020 03:22:35

esto también funciona para mí

Md. Amanur Rahman Md. Amanur Rahman
10 jun 2020 12:39:30
Mostrar los 1 comentarios restantes
2

Otra versión para los libros, solo añade esto al inicio de wp-config.php

La razón es que puede haber balanceadores de carga o algo que no pase el valor correcto de https, así que tienes que tomarlo de otro lugar y simularlo para WordPress.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}
21 feb 2017 14:33:57
Comentarios

Acabo de usar esta solución para una instalación de WordPress 5.5.1 que corre detrás de un HAProxy en un firewall pfsense. Las otras opciones listadas no parecían funcionar correctamente, al menos sin algún ajuste adicional a HAProxy y a las cabeceras que envía.

Swift Swift
24 sept 2020 07:37:48

Ninguna de las otras sugerencias funcionó excepto esta. Muchas gracias

Mahbub Mahbub
16 nov 2020 19:26:32
1

Pregunta de hace 5 años...

Vale, tuve este error después de instalar mi Certificado SSL y cambiar todos los enlaces que eran http a https usando el wp-cli.phar encontrado aquí.

Probé varias configuraciones y ninguna pareció resolver esto, a menos que configurara esto:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true);

a esto:

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);

Me permitió llegar a la página de inicio de sesión, pero luego no pude iniciar sesión. Probé la respuesta dos pero desafortunadamente no ayudó, hasta que hice el siguiente cambio:

/** SSL */   
define('FORCE_SSL_ADMIN', true);
// en algunas configuraciones HTTP_X_FORWARDED_PROTO podría contener
// una lista separada por comas, ej. http,https   
// así que verifica la existencia de https   
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)  
     $_SERVER['HTTPS']='on';

Por alguna razón, no sé por qué, tuve que cambiar el

!== false

a

!== true

Estoy ejecutando nginx como host y proxy inverso a nginx unit... Si alguien tiene idea de por qué eso funcionó, por favor hágamelo saber

19 jul 2019 14:15:31
Comentarios

Me salvaste el día. Eres el ser humano más hermoso del mundo.

mobdevkun mobdevkun
16 jul 2024 22:16:50
0

En realidad... tuve este problema y la solución fue bastante sencilla y hasta vergonzosa. Por alguna razón, en el hosting la carpeta wp-admin había sido eliminada y por eso no había acceso al wp-admin con este mismo mensaje de error.

Después de horas probando tantas formas diferentes, simplemente me di cuenta de esto y al descargar y volver a subir la carpeta, todo volvió a funcionar con normalidad.

Chicos, verifiquen esto, puede ser tan simple como eso.

10 feb 2019 16:22:18
0

Tuve el mismo problema cuando alojé mi sitio en el servicio Azure webapp para Linux.

Prueba este plugin. Ten cuidado cuando lo actives, funciona. https://wordpress.org/plugins/jsm-force-ssl/

Este plugin utiliza filtros nativos de WordPress, en lugar del búfer de salida de PHP, para máxima confiabilidad, rendimiento y compatibilidad con caché (este plugin no afecta el rendimiento del caché), junto con redirecciones 301 permanentes para el mejor SEO (las redirecciones 301 se consideran las mejores para SEO al pasar de HTTP a HTTPS).

Respeta variables de proxy / balanceador de carga para entornos de hosting grandes:

HTTP_X_FORWARDED_PROTO HTTP_X_FORWARDED_SSL Requisitos:

Tu servidor web debe estar configurado con un certificado SSL y debe poder manejar solicitudes HTTPS.

Simplemente activa el plugin y listo:

No hay ajustes de configuración en el plugin, y no se realizan cambios en tu configuración de WordPress — simplemente activa o desactiva el plugin para habilitar / deshabilitar los filtros y redirecciones dinámicas.

7 may 2020 17:25:39
0

Me encontré con el mismo problema, así que después de horas de investigación y ajustes logré que funcionara. Compartiré todo lo que hice porque no estoy seguro si todo está relacionado.

Primero, estoy alojando mi sitio web de WordPress en cPanel, así que utilicé la herramienta Softaculous en cPanel para actualizar mi versión de WordPress.

En segundo lugar, actualicé mi base de datos de WordPress.

(Noté que mi archivo .htaccess en la carpeta raíz de mi sitio web se actualizó con la adición de RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}])

Luego revisé el archivo .htaccess de mi carpeta wp-admin y vi estos comandos:

Order Allow,Deny
Deny from all

Fui a leer en el sitio web de WordPress que esos comandos están destinados a prevenir el acceso web a los archivos en esa carpeta, pero este no era un comportamiento que necesitaba (creo)

Así que los comenté y pude cargar mi sección de administración.

19 feb 2021 15:32:05
0

Configura CloudFlare para usar solo HTTPS y en wp-config establece

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);
9 jul 2021 11:39:40
1

Gracias, eso funcionó para mí. Me alegraste el día

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// en algunas configuraciones HTTP_X_FORWARDED_PROTO podría contener  
// una lista separada por comas, ej. http,https  
// así que verifica la existencia de https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';
13 feb 2024 16:14:15
Comentarios

¿Esa es solo la respuesta de Elias?

Rup Rup
13 feb 2024 19:22:31