Tenho vários domínios que se referem ao mesmo servidor. Agora quero criar um Vhost para cada domínio. Isso já funciona para alguns domínios, mas não para todos.
Exemplo: navego até o domínio “b.com” e obtenho o site que deve ser exibido para “a.com”. Com "a.com", porém, tudo funciona. A solicitação de "b.com" também fica salva no log de "a.com" e lá também indica que naveguei para "a.com".
O gerenciamento de DNS fica na Cloudflare. Cada domínio possui um registro TXT com seu nome de domínio.
Pode me ajudar?
Reduzi minhas configurações ao mínimo. Então esses são os 2 arquivos.
Primeira configuração:
<VirtualHost a.com:80>
Servername a.com
DocumentRoot /var/www/a.com
</VirtualHost>
Segunda configuração:
<VirtualHost b.com:80>
Servername b.com
DocumentRoot /var/www/b.com
</VirtualHost>
Agradeço antecipadamente!
Responder1
O parâmetro for <VirtualHost ...>
informa ao servidor web qualendereço IP localpara vincular. Mesmo se você especificar um nome, ele será usado apenas para resolver um endereço IP. (Por exemplo, é usado quando o servidor possui muitos endereços IP e cada domínio possui um endereço IP dedicado.)
A maioria dos vhosts são baseados em nomes, não em endereços, portanto este parâmetro é inútil e você deve apenas especificar o endereço curinga *
em seu lugar. Em vez disso, o servidor web Apache distingue vhosts por seus parâmetros ServerName
e .ServerAlias
Um padrãovhost baseado em nomeconfiguração fica assim:
<VirtualHost *:80>
ServerName a.example.tld
DocumentRoot /var/www/a
</VirtualHost>
<VirtualHost *:443>
ServerName a.example.tld
DocumentRoot /var/www/a
SSLEngine On
SSLCertificateFile [...]
</VirtualHost>
---
<VirtualHost *:80>
ServerName b.example.tld
DocumentRoot /var/www/b
</VirtualHost>
<VirtualHost *:443>
ServerName b.example.tld
DocumentRoot /var/www/b
SSLEngine On
SSLCertificateFile [...]
</VirtualHost>
Se o servidor deve fornecer HTTP e HTTPS, você ainda precisará definir o vhost para cada porta (:80 e:443). Se você precisa disso ou não, depende da configuração do Cloudflare.
Se você estiver usandovelhoVersões do Apache, como v2.2 ou anteriores, você também precisa destas opções (elas não existem mais na v2.4 ou mais recente):
NameVirtualHost *:80
NameVirtualHost *:443