Manipulação padrão para domínios / subdomínios inigualáveis no Apache

12

Eu tenho uma configuração do Apache2 com vários VirtualHosts. Meu DNS está configurado para aceitar *.<domain>.<tld> em vários domínios. Tudo está funcionando corretamente, mas se eu for para something-random-here.example.com , eu pareço ter um VirtualHost inválido sendo selecionado (estou adivinhando 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? Eu preferiria retornar um 404.

    
por Ryall 07.09.2011 / 10:54

2 respostas

10

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

    
por 07.09.2011 / 11:12
3

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

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

Organize seus arquivos conf do site para que eles sejam carregados em uma ordem esperada. Exemplo ...

01-httpd.conf

02-site1-httpd.conf

03-site2-httpd.conf

etc ...

O Apache irá ler isso em ordem. Em seguida, crie um que sempre carregue por último para capturar qualquer host virtual não correspondido 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 por quaisquer portas que seu httpd esteja atendendo. Ou, se você tiver o httpd ouvindo em interfaces específicas, será necessário adicionar um catchall para cada interface da seguinte forma:

<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 isso ajude. Eu uso esse método para carregar sites na ordem que eu especificar e impedir que hosts virtuais incomparáveis carreguem um site inesperado de forma não intencional.

    
por 25.05.2016 / 18:30