Estoy ejecutando un sitio web de Drupal 8, y cuando busco en cualquier página, aparece una página en blanco con el siguiente mensaje de error.
El nombre de host proporcionado no es válido para este servidor.
¿Qué significa esto? ¿Cómo puedo solucionar esto?
Respuestas:
Este mensaje de error proviene de una característica que se agregó a Drupal 8 para proteger contra ataques de encabezado de host HTTP . La característica también se describe en el registro de cambios que se generó para el parche.
Esencialmente, fue posible falsificar el encabezado del Host HTTP para propósitos nefastos y engañar a Drupal para que use un nombre de dominio diferente en varios subsistemas (particularmente la generación de enlaces). En otras palabras, el encabezado del host HTTP debe considerarse como entrada del usuario y no confiable.
Para combatir esto,
$settings['trusted_host_patterns']
se agregó una nueva configuración a Drupal 8 para configurar una lista de nombres de host "confiables" desde los que se puede ejecutar el sitio. La configuración debe ser una matriz de patrones de expresión regular, sin delimitadores, que representen los nombres de host desde los que desea ejecutar.Por ejemplo, si está ejecutando su sitio desde un único nombre de host "www.example.com", entonces debe agregar esto a su configuración (generalmente se encuentra en
./sites/default/settings.php
):Tenga en cuenta el
^
,\.
y$
. Estas son la sintaxis PCRE . Esto solo significa que desea hacer coincidir "www.example.com" con precisión, sin nada adicional al principio y al final, y que los puntos deben tratarse como puntos y no como caracteres comodín.Si está ejecutando desde "example.com", simplemente use:
Si necesita ejecutar un sitio de múltiples dominios y / o subdominios, y no está haciendo una redirección de URL canónica, su configuración se vería así:
Esto permite que el sitio se ejecute con todas las variantes de example.com y example.org, con todos los subdominios incluidos.
Una vez que se ajuste
$settings['trusted_host_patterns']
al valor adecuado, debería poder navegar de nuevo a su sitio.También puede verificar el estado de su configuración de host de confianza desde la página de informe de estado, que se encuentra en admin / reports / status
Si elimina la configuración por completo, el mecanismo de host de confianza no se utilizará y verá un error en la página de informe de estado. Además, su sitio también puede ser vulnerable ataques de encabezado de host HTTP.
Si tiene esta configuración configurada y está viendo este mensaje, entonces probablemente significa que ha estropeado la sintaxis de la expresión regular. En este caso, tome el primer ejemplo, copie / pegue en su configuración y luego edítelo para reflejar el nombre de host desde el que se ejecuta su sitio.
fuente
para la instalación localhost puede usar el siguiente código en su archivo settings.php
fuente
Esto sucede porque
trusted_host_patterns
variable en su archivo de configuración. Si está trabajando en el entorno local y desea anular esto, defina la siguiente sección en susettings.local.php
archivo:O un patrón más genérico :
O más específico para los entornos locales :
Es la solución más simple, pero no se recomienda, ya que debe establecer los valores adecuados para evitar la suplantación del encabezado del host HTTP con fines nefastos. Si su sitio web se ejecuta solo en su local, entonces debería estar bien.
Consulte: Nueva configuración para la configuración de nombre de host de confianza .
fuente
Este problema también ocurrirá si tiene
cuando deberías tener
configurar en una configuración que no sea SSL (como para entornos de desarrollo / prueba) e intente acceder al sitio en el puerto 80
fuente
Esto se debe a la configuración de host de confianza del servidor. Puede producirse cuando cambia el nombre de dominio o
'trusted_host_patterns'
. Para resolver el probleme, añadir el nuevo dominio alDRUPAL_ROOT/sites/SITE_FOLDER/settings.php
(Ej:sites/defaults/settings.php
)Ejemplo: nombre de dominio = newdomain.com
fuente