Solución bucle de redirección infinita en WordPress alojado en servidores con proxy inverso o balanceadores de carga

Foro sobre el CMS WordPress
Guillermo
Site Admin
Mensajes: 278
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Solución bucle de redirección infinita en WordPress alojado en servidores con proxy inverso o balanceadores de carga

Mensaje por Guillermo »

Modificar el archivo `wp-config.php` en una instalación de WordPress para evitar redirecciones infinitas es una práctica que puede ser necesaria en ciertos entornos de servidor, especialmente cuando se utiliza un proxy inverso o un balanceador de carga que maneja la terminación SSL.

Modificación del archivo wp-config.php ("home/carpeta_web/www/wp-config.php") añadiendo las siguientes líneas de código al inicio del mismo:

Código: Seleccionar todo

define( 'FORCE_SSL_ADMIN', true );
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ $_SERVER['HTTPS']='on'; }
¿Por qué es necesario?

1. Entornos de Proxy Inverso: Cuando WordPress está detrás de un proxy inverso (como Nginx o un balanceador de carga), las solicitudes HTTPS pueden no llegar directamente al servidor de aplicaciones. En su lugar, el proxy puede enviar las solicitudes como HTTP, lo que puede causar que WordPress no reconozca que la conexión es segura.

2. Redirección Infinita: Si WordPress no detecta correctamente que la conexión es HTTPS, puede intentar redirigir a la versión HTTPS de la página, lo que resulta en un bucle de redirección infinita. Esto ocurre porque el servidor sigue interpretando que la conexión es HTTP y redirige a HTTPS, pero el proxy ya ha manejado la conexión como HTTPS.

Explicación del Código
- define( 'FORCE_SSL_ADMIN', true );: Esta línea fuerza a WordPress a utilizar HTTPS en el área de administración. Esto es útil para asegurar que las sesiones de administración estén protegidas.

- El bloque if que verifica $_SERVER['HTTP_X_FORWARDED_PROTO']: Esta parte del código comprueba si el encabezado X-Forwarded-Proto está presente y si su valor es `https`. Este encabezado es comúnmente utilizado por proxies inversos para indicar el protocolo original de la solicitud. Si se cumple la condición, se establece $_SERVER['HTTPS'] en on, lo que le indica a WordPress que la conexión es segura.

Conclusión
Aunque no es habitual tener que hacer estas modificaciones en todas las instalaciones de WordPress, es una solución común en configuraciones específicas donde se utilizan proxies inversos o balanceadores de carga. Si tu sitio está configurado de esta manera, es importante asegurarte de que WordPress reconozca correctamente el protocolo HTTPS para evitar problemas de redirección.
Responder