O Apache procura por correspondências de vhost de cima para baixo e executa a correspondência inicial que encontra.
Se você renomeou videoupload.conf
para 0videoupload.conf
, ele seria lido antes de mysite.conf
e deveria funcionar.
Então eu tenho 2 arquivos de configuração.
mysite.conf
<VirtualHost *:80>
ServerName www.mysite.com
ServerAlias mysite.com *.mysite.com
DocumentRoot /var/www/mysite/www
ErrorDocument 404 /redirect.php
ErrorLog logs/application/mysite.error_log
CustomLog logs/application/mysite.access_log Combined
</VirtualHost>
videoupload.conf
<VirtualHost *:80>
ServerName upload.mysite.com
DocumentRoot /var/www/videouploader/www
ErrorLog logs/application/videoupload.error_log
CustomLog logs/application/videoupload.access_log Combined
</VirtualHost>
Veja, temos cerca de 50 possíveis subdomínios do something.mysite.com, tudo o que faz coisas diferentes, mas todos são servidos na mesma raiz do documento.
Eu gostaria de manter o * .mysite.com lá, simplesmente porque é mais limpo do que ter a linha Serveralias mais longa do mundo, além de proteger de retardos tentando bananananan.mysite.com ou algo que não funcionaria.
Eu li a documentação do apache e realmente não tem nada para este senario. Alguém sabe como fazer isso?
Eu tive um problema semelhante. A resolução foi remover o nome de domínio dos cabeçalhos de qualquer outra diretiva <VirtualHost>
. Remover:
<VirtualHost test.blah.org:443>
ServerName test.blah.org
Substitua por:
<VirtualHost *:443>
ServerName test.blah.org
Usar um nome de domínio no cabeçalho fez com que o apache correspondesse a esse host virtual em vez de meu ServerAlias static-*.blah.org
na diretiva <VirtualHost *:443>
.