Tengo el dominio example.com
y configuré el servidor Ubuntu Apache de manera que apunte cualquier subdominio a un directorio con el mismo nombre.
<VirtualHost *:80>
ServerAlias *.example.com
VirtualDocumentRoot /var/www/html/%1
</VirtualHost>
Así subdomain.example.com
lo señalaré example.com/subdomain
.
Estoy tratando de permitir que los usuarios apunten su propio dominio personalizado a un subdominio de su elección, ¿cómo podría lograrlo y qué registros serían necesarios y qué se tendría que hacer con elAnfitrión virtual?
He probado el siguiente registro:
sampledomain.example
(CNOMBREregistro) -@
-->sample.example.com
sampledomain.example
(Aregistro) -@
--> (IP
Dirección de ejemplo.com)
También intenté usar www
CNAME junto con eliminar el archivo A record
.
sample.example.com
apunta exitosamente a example.com/sample
. Sin embargo, sampledomain.example
actúa como el sitio raíz por alguna razón.
Entonces, si lo visito sampledomain.example/sample
, obtendré el contenido de example.com/sample
en lugar de señalarlo sample.example.com
.
¿Cómo podría solucionar esto? ¿Qué registros se necesitarían y qué se podría hacer con el host virtual?
Utilicé un registro CNAME para poder recuperar el nombre de dominio personalizado a través de PHP cuando el usuario lo visite. ¿Se requiere el CNAME?
Respuesta1
Si está de acuerdo con hacer esto manualmente a pedido de su cliente, esto es fácil. Todo lo que tienes que hacer es agregar ServerAlias sampledomain.com
a la configuración de vhost y recargar la configuración del servidor web.
Sin embargo, si desea que sus clientes hagan esto ellos mismos en algún tipo de interfaz de control de clientes, esto no es fácil de lograr debido a la forma en que funcionan los hosts virtuales en un servidor web. He aquí por qué:
Si tiene algún registro DNS (independientemente de si A
o CNAME
) asignado sampledomain.com
a su servidor web, el navegador enviará una solicitud a la dirección IP de su servidor con el Host
encabezado HTTP configurado en sampledomain.com
. El servidor web utilizará este encabezado para decidir qué host virtual se supone que debe manejar esto y, si sampledomain.com
no es un nombre de vhost ni un alias, la solicitud será respondida por el vhost predeterminado como lo ha experimentado.
Para que esto sea posible, necesita una forma para que sus clientes configuren alias para su vhost. Con Apache esto no es fácil pero en teoría puedes leerlo desde una base de datos, como se explicaaquí(Nunca he probado esto, así que no tengo idea si funciona).
Además, cosas comoMin virtualpodría ser útil en tal caso.