Eu tenho uma configuração Apache2 com vários VirtualHosts. Meu DNS está definido para aceitar *.<domain>.<tld>
em vários domínios. Tudo está funcionando corretamente, mas, se eu for something-random-here.example.com
, pareço selecionar um VirtualHost inválido (acho que o primeiro ou o último encontrado). Existe uma maneira de dizer ao Apache para usar certas regras se nenhuma das entradas do VirtualHost corresponder ao domínio ou subdomínio? Preferencialmente, gostaria de retornar um 404.
12
ports.conf
. Não estava funcionando porque tentei combinar *: 80 quando estava usando <ip>: 80 nos meus virtualhosts. Em vez disso, tive que criar uma entrada padrão separada para cada IP e ela funciona agora.Curinga incluem os arquivos de configuração do site:
Organize os arquivos conf do site para que eles sejam carregados na ordem esperada. Exemplo...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
etc ...
O Apache os lerá em ordem. Em seguida, crie um que sempre carregue por último para capturar hosts virtuais não correspondentes e retorne um 404 em vez de carregar um site padrão.
99-catchall-httpd.conf
Certifique-se de substituir as portas pelas portas em que o httpd estiver escutando. Ou, se você tiver o httpd ouvindo em interfaces específicas, precisará adicionar um catchall para cada interface, da seguinte maneira:
Espero que isto ajude. Uso esse método para carregar sites na ordem em que especifico e evito que hosts virtuais incomparáveis carreguem um site inesperado sem intenção.
fonte
Como
Moritz Both
mencionado, o Apache2 usará o primeiro host virtual encontrado, se não corresponder a nenhum que você solicitou.Quando você instala o Apache2 pela primeira vez, existe um site padrão que você pode usar como modelo, modificar ou excluir, e eu sempre estava pensando para que serve o 000-default.conf, porque eles também tinham o default.conf. Depois de ler o que
Moritz Both
disse, tudo faz mais sentido agora.O que fiz no meu servidor foi copiar a configuração do nome do 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 ao meu site, ela exibe a página 000 padrão, que é apenas uma cópia da minha página padrão real.
fonte
<VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost>
mas o URL permanece o mesmo. Eu fiz o mesmo para a versão não ssl e ela redireciona corretamente. Alguma ideia?