DNS de caractere curinga combinado com DNS de subdomínio único

1

Eu estou tentando fazer com que todos os subdomínios apontem para um local no disco, e um subdomínio particular (dev) aponte para outro.

Eu tentei isso:

<VirtualHost cueflash.com>
 ServerAdmin webmaster@localhost
 ServerAlias www.cueflash.com *.cueflash.com
 DocumentRoot /home/cueflash/www/cueflash.com
 CustomLog /var/log/apache2/cueflash.com.log combined
 ErrorLog /var/log/apache2/cueflash.com.error.log
</VirtualHost>

<VirtualHost dev.cueflash.com>
 ServerAdmin webmaster@localhost
 ServerAlias dev.cueflash.com
 DocumentRoot /home/cueflash/www/dev.cueflash.com
 CustomLog /var/log/apache2/cueflash.com.dev.log combined
 ErrorLog /var/log/apache2/cueflash.com.error.dev.log
</VirtualHost>

Mas ambos parecem apontar para o site principal.

    
por RobKohr 28.11.2009 / 05:46

3 respostas

0

Ok, descobri como fazer isso. Basicamente, você faz todos os hosts não-curinga primeiro e, em seguida, faz o curinga separadamente, uma vez que segue uma primeira ordem de precedência (a primeira correspondência bem-sucedida é aquela usada).

<VirtualHost *>
 ServerName cueflash.com
 ServerAlias www.cueflash.com cueflash.com
 ServerAdmin webmaster@localhost
 DocumentRoot /home/cueflash/www/cueflash.com
</VirtualHost>

<VirtualHost *>
 ServerName dev.cueflash.com
 ServerAdmin webmaster@localhost
 DocumentRoot /home/cueflash/www/dev.cueflash.com
</VirtualHost>

<VirtualHost *>
 ServerName *.cueflash.com
 ServerAdmin webmaster@localhost
 DocumentRoot /home/cueflash/www/cueflash.com
</VirtualHost>

Você pode definir

<VirtualHost *> 

para

<VirtualHost *:80> 

dependendo do seu ouvinte. Além disso, não que eu não tenha incluído várias configurações para coisas como logs de erros. Você precisará deles em cada uma das suas listas do VirtualHost

    
por 13.01.2010 / 17:26
3

O curinga "captura" acontece por ordem de chegada, no Apache. Tente trocar a ordem desses vhosts, de modo que o site dev seja o primeiro da lista.

    
por 28.11.2009 / 09:11
0

Estou um pouco confuso. Parece que os dois nomes de host que você usou acima (dev.cueflash.com e cueflash.com) resolvem para o mesmo endereço IP, o que sugere que você está tentando usar hospedagem virtual baseada em nome ... mas nenhum dos blocos do VirtualHost inclui uma diretiva ServerName (e os argumentos para o bloco VirtualHost são indiscutivelmente incorretos para hospedagem virtual baseada em nome). Não tenho certeza de qual é o comportamento do ServerAlias sem um nome de servidor correspondente.

Você também precisará verificar se tem uma diretiva NameVirtualHost apropriada em sua configuração. Conforme especificado na documentação, se você estiver usando hosts virtuais baseados em nome, o argumento para o contêiner de abertura deve corresponder exatamente ao argumento para a diretiva NameVirtualHost. Por exemplo:

  NameVirtualHost *:80

  <VirtualHost *:80>
    ServerName cueflash.com
    ...
  </VirtualHost>

Talvez você queira dar uma olhada na documentação referente ao suporte ao host virtual baseado em nome para o Apache.

Para nomes de host que não correspondem explicitamente a uma diretiva ServerName ou ServerAlias, você obtém o "host virtual padrão", que é "qualquer host virtual que o Apache encontre primeiro em sua configuração". Eu suspeito que, em combinação com seus outros problemas, é por que tudo está atingindo o site principal.

    
por 29.11.2009 / 05:00