Estou executando um site do Drupal 8 e, quando navego para qualquer página, recebo uma página em branco com apenas a seguinte mensagem de erro.
O nome do host fornecido não é válido para este servidor.
O que isto significa? Como faço para corrigir isso?
Respostas:
Esta mensagem de erro é proveniente de um recurso que foi adicionado ao Drupal 8 para proteger contra ataques de cabeçalho do host HTTP . O recurso também é descrito no registro de alterações que foi gerado para o patch.
Essencialmente, foi possível falsificar o cabeçalho do host HTTP para fins nefastos e induzir o Drupal a usar um nome de domínio diferente em vários subsistemas (principalmente na geração de links). Em outras palavras, o cabeçalho do host HTTP precisa ser considerado como entrada do usuário e não confiável.
Para combater isso, uma nova configuração,
$settings['trusted_host_patterns']
foi adicionada ao Drupal 8 para configurar uma lista de nomes de host "confiáveis" dos quais o site pode ser executado. A configuração precisa ser uma matriz de padrões de expressão regular, sem delimitadores, representando os nomes de host dos quais você deseja permitir a execução.Por exemplo, se você estiver executando seu site a partir de um único nome de host "www.example.com", adicione-o às suas configurações (geralmente encontradas em
./sites/default/settings.php
):Note-se a
^
,\.
e$
. Estas são a sintaxe do PCRE . Isso significa apenas que você deseja corresponder "www.example.com" com precisão, sem nada extra no começo e no final, e que os pontos devem ser tratados como pontos e não como caracteres curinga.Se você estiver executando a partir de "example.com", use:
Se você precisar executar um site de vários domínios e / ou subdomínios, e não estiver fazendo o redirecionamento de URL canônico, sua configuração será mais ou menos assim:
Isso permite que o site fique sem todas as variantes de example.com e example.org, com todos os subdomínios incluídos.
Depois de ajustar
$settings['trusted_host_patterns']
o valor adequado, você poderá navegar no seu site novamente.Você também pode verificar o status de suas configurações de host confiável na página de relatório de status, que é em admin / reports / status
Se você remover completamente a configuração, o mecanismo host confiável não será usado e você verá um erro na página do relatório de status. Além disso, seu site também pode estar vulnerável a ataques de cabeçalho de host HTTP.
Se você tiver essa configuração configurada e estiver vendo esta mensagem, provavelmente significa que você alterou a sintaxe da expressão regular. Nesse caso, pegue o primeiro exemplo, copie / cole nas suas configurações e edite-o para refletir o nome do host do qual o site é executado.
fonte
para a instalação do host local, você pode usar o seguinte código no arquivo settings.php
fonte
Isso acontece porque a
trusted_host_patterns
variável no seu arquivo de configurações. Se você estiver trabalhando no ambiente local e deseja substituí-lo, defina a seguinte seção no seusettings.local.php
arquivo:Ou padrão mais genérico :
Ou mais específico para os ambientes locais :
É a solução mais simples, mas não recomendada, pois você deve definir os valores adequados para evitar falsificar o cabeçalho do host HTTP para fins nefastos. Se o seu site está sendo executado apenas no seu local, você deve ficar bem.
Consulte: Nova configuração para configuração de nome de host confiável .
fonte
Esse problema também ocorrerá se você tiver
quando você deveria ter
configurado em uma configuração não SSL (como para ambientes de desenvolvimento / teste) e tente acessar o site na porta 80
fonte
Isso ocorre devido à configuração de host confiável do servidor. Pode produzir quando você altera o nome do domínio ou
'trusted_host_patterns'
. Para resolver o probleme, adicionar o seu novo domínio para oDRUPAL_ROOT/sites/SITE_FOLDER/settings.php
(Ex:sites/defaults/settings.php
)Exemplo: Nome de domínio = newdomain.com
fonte