Subdomínios dinâmicos em vários domínios no Apache

1

Eu executo um servidor web usando o Ubuntu / Apache, e estou procurando uma maneira de hospedar dinamicamente subdomínios em vários domínios. Eu estive brincando com o Apache por alguns dias e não consegui consertar tudo.

Este é o fluxo de trabalho que estou procurando:

  • Se HTTP_HOST tiver um prefixo 'www', ignore-o.

  • Se incluir um subdomínio, verifique se existe uma pasta correspondente em ~/server/

  • Se houver uma pasta, defina essa pasta como raiz do documento.
  • Se não existir, defina ~/server/www como a raiz do documento.

  • Os subdomínios de vários níveis precisam ser encaminhados ao subdomínio de nível básico. Por exemplo, http://another.sub.domain.tld/ deve usar como padrão ~/server/sub

  • Se nenhum subdomínio for solicitado, use ~/server/www

Estrutura de pastas:

/home/ [domain w/o extension] /server/ [subdomain, default 'www']

Exemplo: http://sub.domain.tld/ corresponde a /home/domain/server/sub

Aqui está o que eu tenho até agora, usando mod_vhost_alias:

UseCanonicalName Off
VirtualDocumentRoot /home/%-2/server/%-3

Só isso satisfaz:

  • http://www.domain.tld/ - procura por ~/server/www
  • http://subdomain.domain.tld - procura por ~/server/subdomain
  • http://www.subdomain.domain.tld - procura por ~/server/subdomain

Mas não é possível satisfazer http://domain.tld/ . (procura por ~/server/domain )

Além disso, se ~/server/subdomain não existir, ele retornará um 404.

Em suma, gostaria que cada subdomínio tivesse sua própria pasta em ~/server/ ou padrão para ~/server/www se não existisse.

Eu quero evitar o uso do mod_rewrite porque ele não altera a raiz do documento; apenas preenche um diretório para o pedido. No entanto, posso apenas alterar a estrutura da pasta como último recurso.

    
por LearlessFeader 08.01.2012 / 02:47

1 resposta

1

Você pode usar o mod_rewrite do apache para fazer isso sem usar hosts virtuais. Ele pode dividir e ditar URLs, bem como verificar a existência de diretórios e arquivos.

Pode não ser tão rápido quanto os hosts virtuais, mas muito mais fácil de implementar.

    
por 08.01.2012 / 02:54

Tags