Tratamento padrão para domínios/subdomínios incomparáveis ​​no Apache

Tratamento padrão para domínios/subdomínios incomparáveis ​​no Apache

Tenho uma configuração Apache2 com vários VirtualHosts. Meu DNS está configurado para aceitar *.<domain>.<tld>vários domínios. Tudo está funcionando corretamente, mas se eu for, something-random-here.example.comparece que um VirtualHost inválido está sendo selecionado (suponho que seja o primeiro ou o último que encontrar). Existe uma maneira de dizer ao Apache para usar certas regras se nenhuma das entradas do VirtualHost corresponder ao domínio ou subdomínio? De preferência, gostaria de retornar um 404.

Responder1

O Apache usa o primeiro host virtual se nenhum nome corresponder. Basta configurar um novo host virtual como o primeiro com um nome aleatório, exibindo o que quiser - ou retornando uma página 404.

Responder2

O curinga inclui os arquivos de configuração do seu site:

Include path/to/site/confs/*httpd.conf

Organize os arquivos conf do seu site para que sejam carregados na ordem esperada. Exemplo...

01-httpd.conf

02-site1-httpd.conf

03-site2-httpd.conf

etc...

O Apache irá lê-los em ordem. Em seguida, crie um que sempre será carregado por último para capturar hosts virtuais incomparáveis ​​e retornar um 404 em vez de carregar um site padrão.

99-catchall-httpd.conf

<VirtualHost *:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost *:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

Certifique-se de substituir as portas pelas portas que seu httpd escuta. Ou se você tiver httpd escutando em interfaces específicas, você precisará adicionar um genérico para cada interface, assim:

<VirtualHost 192.168.1.101:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.101:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

Espero que isto ajude. Eu uso esse método para carregar sites na ordem que especifico e evitar que hosts virtuais incomparáveis ​​carreguem um site inesperado involuntariamente.

Responder3

Como Moritz Bothmencionado, o Apache2 usará o primeiro host virtual que encontrar se não corresponder a nenhum que você solicitou.

Quando você instala o Apache2 pela primeira vez, há um conf de site padrão que você pode usar como modelo, modificar ou excluir, e eu sempre me perguntei para que servia o 000-default.conf, porque eles também tinham um default.conf. Depois de ler o que Moritz Bothfoi dito, tudo faz mais sentido agora.

O que fiz no meu servidor foi copiar a configuração do nome de host padrão (site) para o arquivo 000-default.conf e a2ensite 000-default.

Agora, sempre que há uma solicitação de domínio incomparável para meu site, ele exibe a página padrão 000, que é apenas uma cópia da minha página padrão real.

informação relacionada