As melhores práticas para configurar o Apache2 Virtualhosts com Aliases?

1

Estou definindo meus Hosts Virtuais Apache2, em um servidor Debian Squeeze, desta forma:

nome do arquivo: whatever.mydomain.com

Alias /whatever /var/www/whatever.mydomain.com

<VirtualHost *:80>
        ServerAlias whatever.mydomain.com
        ServerAdmin [email protected]
        VirtualDocumentRoot /var/www/%0 

        ErrorLog /var/log/apache2/whatever.mydomain.com-error.log
        CustomLog /var/log/apache2/whatever.mydomain.com-access.log combined
</VirtualHost>

<Directory /var/www/whatever.mydomain.com>
        AuthPAM_Enabled On
        AuthType basic
        AuthName "Authorization Required to proceed"
        AuthBasicAuthoritative off
        AuthUserFile /dev/null
        Require valid-user
</Directory>

Gostaria de exibir o mesmo site com dois URLs: whatever.mydomain.com e www.mydomain.com/whatever

Então, para ajudar nesse problema, configurei o Alias / whatever /var/www/whatever.mydomain.com no início do arquivo. Mas não sei se isso é uma boa prática. E sobre a configuração do VirtualHost? Há algo que pode ser feito melhor?

E a última pergunta: existe uma maneira de usar variáveis dentro do arquivo? Como exemplo, repita o% 0 em outros locais que não o VirtualDocumentRoot?

Agradecemos antecipadamente

EDITAR: Eu tenho um novo problema. Com o alias global, todos os meus virtualhosts responderão ao alias / whatever e eu quero apenas que o alias seja aplicado em www.mydomain.com. Estou lutando com o RedirectMatch sem sucesso neste momento. Estou usando o redirecionamento em vez do alias porque com o alias, o log de acesso e erro não entra no arquivo de log do virtualhost.

    
por Vinícius Ferrão 13.03.2013 / 03:35

1 resposta

1

Você pode querer colocar o Alias em seu próprio host virtual. Por exemplo:

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/whatever.mydomain.com

    Alias /whatever /var/www/whatever.mydomain.com
    ErrorLog /var/log/apache2/www.mydomain.com-error.log
    CustomLog /var/log/apache2/www.mydomain.com-access.log combined
</VirtualHost>

É assim que eu faria, mas é claro que existem várias maneiras de fazer as coisas corretamente no Apache. Se funciona, funciona ...

Quanto à sua última pergunta: você não pode realmente usar variáveis em arquivos de configuração (exceto algumas exceções), mas existem módulos de terceiros que podem valer a pena ser investigados. Um é mod_macro: link Outro que pode ser usado para tornar os arquivos de configuração mais dinâmicos é o mod_perl, mas esse é um tópico realmente avançado.

    
por 13.03.2013 / 10:22