Problema de configuração do Host Virtual em Massa do Apache

1

Eu tenho uma instância do Amazon ec2 com o LAMP instalado. Eu editei /etc/apache2/sites-available/000-deault.conf e adicionei isto:

<VirtualHost *:80>
        ServerAlias *
        UseCanonicalName Off
        LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
        CustomLog /var/log/apache2/access.log vcommon
        VirtualDocumentRoot /var/www/vhosts/%0
</VirtualHost>

Listen 443
<VirtualHost *:443>
        ServerAlias *
        UseCanonicalName Off
        LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
        CustomLog /var/log/apache2/access.log vcommon
        VirtualDocumentRoot /var/www/vhosts/%0
</VirtualHost>

Quando visito meus nomes de domínio, eles apontam para o diretório correto e tudo funciona bem, exceto por uma coisa ... quando visito os domínios com www. dá esse erro:

"Não encontrado

O URL solicitado / não foi encontrado neste servidor. "

Minha estrutura de diretórios é /var/www/vhosts/domain.com sem o www. - Poderia ser esse o problema e, em caso afirmativo, o que posso fazer para corrigir isso sem adicionar os diretórios domain.com e www.domain.com?

    
por Dominick Allen 01.07.2017 / 22:29

2 respostas

1

Você pode usar este VirtualDocumentRoot , em vez disso:

VirtualDocumentRoot "/var/www/vhosts/%-2.0.%-1.0"

Isso fará com que todos os subdomínios (incluindo www.example.com ) apontem para /var/www/vhosts/example.com também.

BTW, se este for seu único / primeiro host virtual (em cada porta), você não precisará de ServerAlias * ; se nenhum outro virtualhost correspondente for encontrado, o virtualhost padrão será usado de qualquer maneira.

    
por 02.07.2017 / 17:33
0

Sua configuração tem

UseCanonicalName Off

CannonicalName é um tipo de entrada de DNS.

servername.com é um tipo de DNS A

www.servername.com é um tipo de DNS CNAME, redirecionando para o tipo DNS a servername.com

No padrão, UseCanonicalName está desabilitado, remova as linhas do arquivo de configuração e recarregue / reinicie o serviço apache com

systemctl restart apache2

É recomendado que você configure o ServerName e o ServerAlias, para retornar o código e a página da web somente se o DNS corresponder.

Nome_do_servidor nome_do_servidor.com

ServerAlias www.servername.com ww2.servername.com

Sua linha Listen 443 não é necessária neste arquivo de configuração, coloque em /etc/apache2/apache2.conf

    
por 01.07.2017 / 22:41