Bloqueie conexões IP diretas com o servidor web Apache [duplicado]

1

Eu preciso descobrir como bloquear o acesso IP direto ao meu site.

Exemplo: desejo que, quando as pessoas digitarem meu endereço IP 1.2.3.4 no navegador, não funcione, mas quando digitarem www.example.com , funcionará.

Estou usando Apache 2.4.9 e meu site é executado com WampServer .

Eu tentei outras soluções de algumas perguntas antigas aqui, mas nenhuma delas funcionou para mim. Eu tentei colar coisas do host virtual no vhosts.conf, mas não consegui acertar, e tentei reescrever coisas com o arquivo htaccess, mas isso também não funcionou.

    
por Ben Stapleton 29.06.2016 / 02:33

2 respostas

2

Geralmente, a primeira entrada do host virtual também atua como padrão, portanto, faça com que o primeiro ponto de entrada do host virtual seja uma pasta com uma página de acesso negado.

    
por 29.06.2016 / 10:27
0

Uma maneira de fazer isso é definir uma condição de reescrita no contexto do servidor global que não permita solicitações baseadas em IP, exigindo um cabeçalho HTTP semelhante ao o exemplo mostrado abaixo:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/error [NC]
RewriteRule ^.(.*) - [L,F]

NOTA: Este exemplo requer que você ative o mod_rewrite .

OBSERVAÇÃO TAMBÉM: Se você tiver vários hosts virtuais, poderá modificar o RewriteCond para verificar de maneira mais ampla ou usar várias declarações RewriteCond para acomodar os diferentes domínios.

Uma configuração alternativa é:

<If req('Host') != 'www.example.com'">
  <Location "/">
    Require all denied
  </Location>
</If>
    
por 29.06.2016 / 04:01