Configure o Apache Alias para o ServerAlias específico

5

Atualmente, tenho um VirtualHost definido assim:

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias otherdomain.com
    DocumentRoot /var/www/project/
</VirtualHost>

Como posso criar um alias que afeta apenas o domínio otherdomain.com :

Alias /sub /var/www/other

Para que:

http://otherdomain.com/sub -> /var/www/other
http://mydomain.com/sub -> /var/www/project/sub

O VirtualHost em questão não é tão simples na realidade, então prefiro não criar VirtualHosts separados apenas para isso. Existe alguma expressão condicional ou similar que eu possa usar dentro do VirtualHost? Algo ao longo das linhas de:

<VirtualHost *:80>
    ...
    <If ServerName=otherdomain.com>
        Alias /sub /var/www/other
    </If>
</VirtualHost>
    
por Tatu Ulmanen 13.08.2012 / 20:32

2 respostas

3

Não, você não pode usar um alias em um if.

If "%{HTTP_HOST}

não é compatível com o Alias, usando isso, o Apache não iniciará e exibirá a mensagem de erro:

Alias not allowed here

Você deve criar outro VirtualHost com o nome correspondente e configurado com seu alias.

    
por 20.06.2017 / 15:47
1

Aqui estão os bits relevantes da documentação do Apache:

link

e

link

Nesse caso, algo assim deve funcionar:

<If "%{HTTP_HOST} == 'example.com'">
    Alias /sub /var/www/other
</If>

Acredito que você precisará do Apache 2.2 ou superior para a funcionalidade "If".

    
por 13.08.2012 / 20:52