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.
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.
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.
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>
Tags ip virtualhost apache-2.4 block