Tengo varios dominios que se refieren a un mismo servidor. Ahora quiero crear un Vhost para cada dominio. Esto ya funciona para algunos dominios, pero no para todos.
Ejemplo: navego hasta el dominio "b.com" y obtengo el sitio web que debería mostrarse para "a.com". Sin embargo, con "a.com" todo funciona. La solicitud de "b.com" también se guarda en el registro de "a.com" y allí también indica que he navegado a "a.com".
La gestión de DNS está en Cloudflare. Cada dominio tiene un registro TXT con su nombre de dominio.
¿Me puedes ayudar?
He minimizado mis configuraciones al mínimo. Entonces esos son los 2 archivos.
Primera configuración:
<VirtualHost a.com:80>
Servername a.com
DocumentRoot /var/www/a.com
</VirtualHost>
Segunda configuración:
<VirtualHost b.com:80>
Servername b.com
DocumentRoot /var/www/b.com
</VirtualHost>
¡Gracias de antemano!
Respuesta1
El parámetro for <VirtualHost ...>
le dice al servidor web quédirección IP localpara unirse a. Incluso si especifica un nombre, solo se usa para resolver una dirección IP. (Por ejemplo, se utiliza cuando el servidor tiene muchas direcciones IP y cada dominio tiene una dirección IP dedicada).
La mayoría de los vhosts se basan en nombres, no en direcciones, por lo que este parámetro es inútil y simplemente debe especificar la dirección comodín *
en su lugar. En cambio, el servidor web Apache distingue los vhosts por sus parámetros ServerName
y ServerAlias
.
Un estandarvhost basado en nombresla configuración se ve así:
<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>
Si se supone que el servidor debe proporcionar HTTP y HTTPS, aún deberá definir el vhost para cada puerto (:80 y :443). Si necesita esto o no, posiblemente dependa de su configuración de Cloudflare.
Si estas usandoviejoPara versiones de Apache como la v2.2 o anteriores, también necesita estas opciones (ya no existen en la v2.4 o posteriores):
NameVirtualHost *:80
NameVirtualHost *:443