host virtual impedindo o servidor padrão

-1

Eu tenho um servidor doméstico que uso para desenvolvimento e algo que estou enfrentando é que às vezes eu insiro um URL e ele carrega o site errado,

por exemplo:

https://dev.demoapp.com => https://dev.demoapp.com (Correct)

http://dev.demoapp.com => http://dev.mysite.com (Incorrect)

então eu fui ver o que o Apache está carregando tudo como:

VirtualHost configuration:

*:443 is a NameVirtualHost

default server dev.demoapp.com (/etc/apache2/sites-enabled/dev.demoapp.com.conf:1)

port 443 namevhost dev.demoapp.com (/etc/apache2/sites-enabled/dev.demoapp.com.conf:1)

port 443 namevhost dev.test.com (/etc/apache2/sites-enabled/dev.test.com.conf:1)

*:80 is a NameVirtualHost

default server dev.mysite.com (/etc/apache2/sites-enabled/dev.mysite.com.conf:1)

port 80 namevhost dev.mysite.com (/etc/apache2/sites-enabled/dev.mysite.com.conf:1)

port 80 namevhost dev.local.com (/etc/apache2/sites-enabled/dev.local.com.conf:1)

Percebi que certos sites estão sendo exibidos duas vezes e não sei como isso está acontecendo.

Como posso fazer com que o link seja redirecionado para https ou apenas informe ao usuário que ele é um URL inválido (prefira redirecioná-lo honestamente)

    
por Eman 15.12.2017 / 02:59

1 resposta

1

você precisa definir um contêiner <VirtualHost *:80> separado, com ServeName /dev.demoapp.com ou adicionar uma linha ServerAlias /dev.demoapp.com no contêiner VirtualHost existente e apropriado.

Você NÃO pode exibir os mesmos VirtualHosts com portas diferentes do contêiner ONE <VirtualHost ..> , a menos que trabalhe com curinga para porta.

Eu costumo trabalhar com arquivos Include para todas as diretivas que são compartilhadas entre VirtualHosts e apenas coloco as diretivas específicas, como SSL * nas diretivas <VirtualHost ..:443> individuais (eu até coloco cada VIrtualHost em um arquivo Include separado).

A partir do Apache httpd-2.3.11, não há uma diretiva NameVirtualHost efetiva (sempre que uma combinação de endereço IP e porta é usada em vários hosts virtuais, a hospedagem virtual baseada em nome é ativada automaticamente para esse endereço - link )

Além disso, não há VirtualHost DEFAULT, a primeira diretiva <VirtualHost> encontrada é de fato a padrão, significando todas as solicitações do cliente, cujo cabeçalho HTTP_HOST não é explicitamente definido como ServerName ou ServerAlias em um% co_de separado % está sendo veiculado na primeira configuração do Virualhost.

Se você quiser implementar um 'VirtualHost' padrão ', você pode colocar um contêiner <VirtualHost> no arquivo httpd.conf central ANTES de incluir qualquer outro arquivo (antes de <VirtualHost *:80> ou qualquer outro), ou escrever um vhost inclui o arquivo que vem no topo da sua lista, por exemplo. 0_default-vhost.conf, com IncludeOptional /etc/apache2/sites-enabled/*.conf ou <VirtualHost *:*> , por favor experimente, qual funciona.

    
por Stefan 21.12.2017 / 14:43