Precedência de configuração do Apache VHost?

1

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?

    
por GruffTech 15.07.2011 / 17:36

2 respostas

4

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.

    
por 15.07.2011 / 17:42
1

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> .

    
por 29.03.2018 / 02:07