Temos um arquivo vhost conf que é um catch-all em um cenário multi-inquilino, no entanto, há um requisito para um de nossos clientes ter uma alias
declaração específica que está atualmente definida assim...
Alias /special "/srv/application/public/example/special"
Atualmente, isso significa que TODOS os clientes / domínios no sistema seriam capturados e forçados a servir , o /special/
que obviamente é um problema.
Como posso limitar o escopo desta Alias
declaração para que ela seja aplicada apenas quando o domínio solicitado corresponder a example.com
ou www.example.com
?
Para sua informação, estamos mudando do Apache 2.2 para o 2.4 em breve. Se houver alguma diferença no caso específico, indique-a. Obrigado!
EDIT Devo salientar que estamos limitados neste caso pelo middleware e devemos manter tudo em uma única declaração vhost.
A maneira mais direta é criar uma declaração de host virtual separada e não padrão apenas para esse domínio:
A única desvantagem é que você precisará manter o mesmo
# other default directives
em example.com e nos hosts virtuais padrão. Uma boa maneira de fazer isso é colocá-los todos em um arquivo eInclude
esse arquivo em ambas as declarações de host virtual.Como alternativa, você pode manter apenas uma declaração de host virtual e adicionar uma RewriteRule:
Certifique-se de considerar qual método será mais sustentável quando você adicionar mais exceções no futuro, como certamente fará.
Você deve colocar a diretiva alias na definição do VirtualHost para example.com
arquivos vhost grandes tornam o gerenciamento muito difícil, crie um arquivo individual para cada inquilino e INCLUA-o no arquivo vhost. isso pode ser feito ao vivo e fazer com que o apache recarregue as configurações quando terminar. dessa forma, você pode oferecer suporte a vários domínios por locatário e facilitar as alterações sugeridas por Andrew acima.