Saltar al contenido

Wordpress: ¿Por qué WordPress Multisite está redirigiendo a wp-signup.php y cómo solucionarlo?

Solución:

Después de muchas horas de depuración y desesperación, el problema ahora está resuelto. Resultó ser algo muy oscuro.

La redirección es emitida por la función ms_load_current_site_and_network() dentro /wp-includes/ms-load.php. Emitía la redirección porque /wp-includes/ms-settings.php no pudo establecer un dominio. La razón por la que no pudo establecer un dominio es porque $_SERVER['HTTP_HOST'] no estaba configurado.

$_SERVER['HTTP_HOST'] no estar configurado tuvo que ver con la configuración de PHP auto_globals_jit. Se configuró en Activado, lo que resultó en el $_SERVER matriz no está configurada (como se explica en este comentario). Aunque $_SERVER['HTTP_HOST'] y el resto se definieron al cargar un solo archivo php con phpinfo(); en él, no se definieron al cargar los archivos php de Wordpress. Y eso llevó a la redirección.

Configuración auto_globals_jit a Off en php.ini lo resolvió.

Información adicional:

El problema también se complicó más por alguna forma de almacenamiento en caché (que no pude precisar ni borrar). Entonces tuve que confiar en el comportamiento que vi ocurrir solo una vez y no pude replicar después. Por ejemplo, creé un archivo php separado para verificar si $_SERVER['HTTP_HOST'] está configurado, e inicialmente no lo estaba. Siguiendo la sugerencia del comentario, usé $_SERVER['HTTP_HOST'] dos veces en el archivo php, e inmediatamente vi que ahora estaba configurado. Sin embargo, al revertir el cambio y tener $_SERVER['HTTP_HOST'] solo una vez en el archivo php, aún permaneció configurado, lo que sugiere que estaba viendo una respuesta en caché. No puedo hacer que se rompa de nuevo después de arreglarlo una vez.

Solo documentando esto aquí en caso de que alguien encuentre un comportamiento similar.

No puedo comentar, así que dejo esta respuesta. Como seguimiento de la fantástica investigación realizada por @Borislav, hay otro hilo SE que está relacionado, con varias correcciones potenciales:

Redireccionamiento del sitio a wp-signup.php

En última instancia, todos los problemas de redireccionamiento con WordPress Multisite parecen estar relacionados con siteurl y home que incluso si está codificado correctamente (p. ej., utilizando WP_HOME y WP_SITEURL en el archivo wp-config.php) aún resultará en problemas de redireccionamiento si los campos adjuntos en la tabla wp_options no son también correctos. Esto se debe a la forma en que WordPress Multisite procesa la rutina de configuración inicial; Si bien no he encontrado ninguna documentación sobre el motivo de esto, creo que probablemente un desarrollador de Core lo hizo a propósito para garantizar que no surjan conflictos más adelante en la funcionalidad de la instalación multisitio, que es más propensa a problemas que los sitios individuales. .

Algunos han sugerido implementar NOBLOGREDIRECT como una solución, pero esto no parece funcionar y no resuelve el problema subyacente. Esa configuración solo está destinada a redirigir a los visitantes que llegan a subsitios inexistentes de su red multisitio (por ejemplo, si el registro está deshabilitado para nuevos blogs).

Ref: https://www.sarahgebauer.com/today-i-learned-multisite-mystery-signup/

Ref: https://gist.github.com/dejanmarkovic/8323792

En conclusión:

Asegúrese siempre de que su tabla wp_options tenga la siteurl y home configuración actualizada para reflejar con precisión el dominio principal de su instalación Multisitio. En ciertos casos, puede ser necesario ejecutar una búsqueda / reemplazo en toda la base de datos MySQL, dependiendo del historial de su dominio (y base de datos), en particular para apuntar a entradas incorrectas en el wp_blogs y wp_site mesas…

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *