Estou usando o servidor da web apache no CentOS e preciso desativar a capacidade das pessoas acessarem o site usando o endereço IP do servidor em um navegador da web. Quero que, quando alguém tentar navegar para o endereço IP, receber uma mensagem de erro proibida.
Que configurações seriam necessárias para fazer isso?
apache-2.2
centos
Amr Elkhedewy
fonte
fonte
Você pode conseguir isso com mod_rewrite (no
.htaccess
arquivo, ou no contexto padrão do servidor, ou em um VirtualHost separado, ondeServerName
é o endereço IP do host):Isso indica que, se o cabeçalho HTTP_HOST corresponder ao endereço IP 1.2.3.4, qualquer solicitação deverá ser atendida com a
403 Forbidden
. Qualquer solicitação que tenha outro cabeçalho HTTP_HOST (por exemplo, um com o nome de domínio real e não o endereço IP) não deve ser afetado.fonte
Você não pode bloquear o acesso direto por IP. Você deve permitir a conexão, mas depois decidir o que fazer com ela. Isso pode retornar um 403, um 404 ou redirecioná-los para a página desejada. Você pode fazer isso com mod_rewrite.
Isso corresponderá ao cabeçalho HTTP HOST passado pelo cliente da web. Todos os outros pedidos seriam aprovados.
No entanto, você pode normalizar seus URLs para fins de SEO.
Com essa abordagem, você reescreve qualquer coisa que não corresponda ao resultado desejado.
Referência: https://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#canonicalurl
Referência: http://en.wikipedia.org/wiki/URL_normalization
fonte
Esta solução não cobre todos os casos.
Substitua qualquer número ou ponto no URL do IP por seu% ##, por exemplo 1 por% 31 ... 8 por% 38 e você chegará ao IP, não ao URL do domínio.
Suponha que esse IP incorreto seja usado para facilitar a explicação: 123.45.6.789
Você deve usar as 2 alternativas para todos os dígitos e pontos: o ponto é% 2E e 0..9 são% 30 ..% 39
Feio, ele pode ser reduzido com {1,3} e restringido ao IP válido, mas, como é para o seu IP, não é necessário fazê-lo.
Não esqueça as portas como ": 80". HTTP_HOST o contém e SERVER_NAME não é confiável.
fonte