GNU/Linux >> Tutoriales Linux >  >> Linux

Solucionar el error de nombre de host proporcionado no válido

Este artículo describe la causa del siguiente mensaje de error y cómo solucionar el problema:

The provided host name is not valid for this server.

Cuando trabaja con Drupal 8, es posible que reciba este mensaje de error cuando navegue a cualquier página y vea una página en blanco.

Advertencia: Antes de usar estas instrucciones de solución de problemas, asegúrese de comprender su entorno, ya que estos pasos de solución de problemas pueden no ser adecuados para todas las instalaciones o configuraciones. Además, le recomendamos que haga una copia de seguridad antes de realizar cualquier cambio en su sistema para que pueda revertir los cambios si es necesario.

Fuente del error

Este mensaje de error proviene de una función que se agregó a Drupal para proteger contra ataques de encabezado de host HTTP. El registro de cambios generado para el parche describe la función.

Desafortunadamente, es posible falsificar el encabezado del host HTTP con fines nefastos y engañar a Drupal para que use un nombre de dominio diferente en varios subsistemas (particularmente en la generación de enlaces). Por lo tanto, debe considerar el encabezado del host HTTP como una entrada del usuario que no es de confianza.

Solucionar este error

Para combatir este problema, Drupal agregó la siguiente configuración para configurar una lista de nombres de host confiables desde los cuales se puede ejecutar el sitio.

$settings['trusted_host_patterns']

La configuración es una matriz de patrones de expresiones regulares, sin delimitadores, que representan los nombres de host desde los que desea permitir la ejecución.

Por ejemplo, si está ejecutando su sitio desde un solo nombre de host www.example.com , entonces debe agregar esto a su configuración (generalmente se encuentra en ./sites/default/settings.php ):

$settings['trusted_host_patterns'] = array( '^www\.example\.com$', );

Nota :^, \. y $ son sintaxis de expresiones regulares compatibles con Perl (PCRE) y significan que desea hacer coincidir www.example.com precisamente, sin nada adicional al principio o al final, y que los puntos deben ser tratados como puntos y no como caracteres comodín.

Si está ejecutando desde "example.com", use lo siguiente:

$settings['trusted_host_patterns'] = array( '^example\.com$', );

Si necesita ejecutar un sitio de varios dominios o subdominios y no está realizando una redirección de URL canónica, su configuración debe ser similar al siguiente ejemplo:

$settings['trusted_host_patterns'] = array( '^example\.com$', '^.+\.example\.com$', '^example\.org', '^.+\.example\.org', );

Esto permite que el sitio se ejecute desde todas las variantes de ejemplo.com y ejemplo.org con todos los subdominios incluidos.

Si tiene esta configuración configurada y aún ve el mensaje de error, es probable que no esté utilizando la sintaxis de expresión regular correcta. En este caso, tome el primer ejemplo de este artículo, cópielo y péguelo en su configuración y luego edítelo para reflejar el nombre de host desde el que se ejecuta su sitio.

Después de ajustar $settings['trusted_host_patterns'] al valor adecuado, debería poder navegar a su sitio nuevamente.

Eliminación de la configuración

Si elimina la configuración por completo, el mecanismo de host de confianza no se utiliza y verá un error en la página del informe de estado. Además, su sitio podría ser vulnerable a ataques de encabezado de host HTTP.

Comprobar estado

Puede comprobar el estado de la configuración de su host de confianza desde la página de informe de estado, que se encuentra en admin/reports/status .


Linux
  1. Arreglar el error Class ZipArchive no encontrado [PHP 7]

  2. Comando yum-config-manager no encontrado [Fijar]

  3. Bash + Verificar nombre por expresión regular?

  4. Solucionar el error del servidor interno de WordPress

  5. El comando "ntpq -pn" devuelve el error "Nombre o servicio desconocido"

Cómo solucionar problemas de ERR_TOO_MANY_REDIRECTS

Cómo corregir el error "El repositorio aún no es válido" en Ubuntu Linux

Solución de problemas del error "Bash:Comando no encontrado" en Linux

If…else…if Declaración (error de comando no encontrado)?

curl:(6) No se pudo resolver el host:google.com; Nombre o servicio desconocido

sshpass:error de comando no encontrado