Como apontar domínio externo para um subdomínio?

Como apontar domínio externo para um subdomínio?

Eu tenho o domínio example.come configurei o servidor Ubuntu Apache de forma que aponte qualquer subdomínio para um diretório com o mesmo nome.

<VirtualHost *:80>
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/html/%1
</VirtualHost>

Então subdomain.example.comapontará para example.com/subdomain.

Estou tentando permitir que os usuários apontem seu próprio domínio personalizado para um subdomínio de sua escolha, como eu poderia conseguir isso e quais registros seriam necessários e o que teria que ser feito para oAnfitrião virtual?

Eu tentei o seguinte registro:

  • sampledomain.example(CNAMEregistro) - @-->sample.example.com
  • sampledomain.example (Aregistro) - @--> ( IPEndereço de example.com)

Também tentei usar wwwo CNAME junto com a remoção do arquivo A record.

sample.example.comaponta com sucesso para example.com/sample. No entanto, sampledomain.exampleatua como o site raiz por algum motivo.

Portanto, se eu visitar sampledomain.example/sample, obterei o conteúdo example.com/sampleem vez de apontar sample.example.com.

Como eu poderia resolver isso? Quais registros seriam necessários e o que poderia ser feito no Host Virtual?

Usei um registro CNAME para poder recuperar o nome de domínio personalizado via PHP quando o usuário o visitar - o CNAME é necessário?

Responder1

Se você concordar em fazer isso manualmente mediante solicitação do seu cliente, isso é fácil. Tudo que você precisa fazer é adicionar ServerAlias sampledomain.comà configuração do vhost e recarregar a configuração do servidor web.

No entanto, se você quiser que seus clientes façam isso sozinhos em algum tipo de interface de controle do cliente, isso não será facilmente alcançado devido à forma como os hosts virtuais em um servidor web funcionam. Aqui está o porquê:

Se você tiver algum registro DNS (independentemente de Aou CNAME) mapeado sampledomain.compara o seu servidor web, o navegador enviará uma solicitação ao endereço IP do seu servidor com o Hostcabeçalho HTTP definido como sampledomain.com. O servidor web usará este cabeçalho para decidir qual host virtual deve lidar com isso e se sampledomain.comnão for um nome de vhost nem um alias, a solicitação será respondida pelo vhost padrão como você já experimentou.

Para tornar isso possível, você precisa de uma maneira para que seus clientes configurem aliases para seus vhosts. Com o Apache, isso não é fácil, mas em teoria você pode ler isso em um banco de dados, conforme explicadoaqui(Nunca tentei isso, então não tenho ideia se funciona).

Além disso, coisas comoVirtualMinpode ser útil nesse caso.

informação relacionada