Você não precisa verificar o Host
do cabeçalho para IPs específicos, apenas verifique se há Host
que comece com um dígito. Por exemplo, na parte superior do seu arquivo .htaccess
:
RewriteCond %{HTTP_HOST} ^\d
RewriteRule .* - [F]
Você não precisa do sinal L
com F
- está implícito.
Você também não precisa dos wrappers <IfModule mod_rewrite.c>
adicionais. Basta deixar o WordPress como está. (Embora isso não seja estritamente necessário também.)
No entanto, esses tipos de blocos devem, idealmente, ser executados no nível server / vitualhost, e não em .htaccess
. Configure um <VirtualHost>
padrão que intercepte essas solicitações IP indesejáveis.
Por exemplo, supondo que você esteja usando apenas VirtualHosts baseados em nome, então você pode configurar um padrão VirtualHost (que deve ocorrer antes de todos os outros VirtualHosts) do formulário:
# Catch all other requests for non-specific hosts. eg IP address access
<VirtualHost _default_>
ServerName default.example.com
<Location />
Require all denied
</Location>
</VirtualHost>
Isso captura todas as solicitações que não mapeiam para nenhum outro host virtual "nomeado". _default_
é simplesmente um alias para *
. Como observado acima, esse <VirtualHost>
container deve ocorrer antes de todos os outros <VirtualHost>
contêineres na configuração do seu servidor. O fato de ser definido primeiro é o que faz dele o "padrão".
A diretiva ServerName
deve ser definida como algo diferente de um real < em> nome do servidor no seu sistema. Ele pode ser omitido, mas o servidor só tentará calculá-lo, o que pode não ser confiável.
Isso impede que seus hosts virtuais reais (que atendem ao seu site) tenham que lidar com essas outras solicitações.
# deny all POST requests
Isso parece um pouco extremo! Estou surpreso que seu site ainda funcione?