Considerando um servidor web que hospeda vários hosts virtuais, é possível configurar um alias global com base em um padrão de nome de host que também pode corresponder a um dos hosts definidos anteriormente?
Algum contexto: geralmente usamos domínios de teste para nossos clientes, nos quais eles podem visualizar seu site enquanto o domínio ainda não foi configurado corretamente. Isso faz com que as diretivas virtualhost tenham a seguinte aparência:
<VirtualHost 1.1.1.1:80>
ServerName myclient.com
ServerAlias myclient.staging.mycompany.com
....
</VirtualHost>
O que eu quero alcançar:
Prefiro não ter o domínio de preparação incluído nos resultados do Google. Para isso, gostaria de configurar uma Alias
diretiva Disallow: /
quando o padrão de nome do host corresponder a *.staging.mycompany.com
. De preferência, prefiro não incluir isso em cada virtualhost, mas configurá-lo em um nível superior.
O que eu tentei:
Eu tentei configurar um costume VirtualHost
da seguinte forma:
<VirtualHost 1.1.1.1:80>
ServerName staging.mycompany.com
ServerAlias *.staging.mycompany.com
Alias /robots.txt /usr/local/apache/htdocs/staging-robots.txt
</VirtualHost>
Isso não funciona, porque as outras VirtualHost
diretivas são correspondidas e esta é ignorada.
Qual seria a maneira mais elegante de conseguir isso?
Resolvi meu próprio problema incluindo o arquivo em cada um
VirtualHost
da seguinte maneira:E em:
/usr/local/apache/conf/includes/staging-rewrites.conf
:E, finalmente, no meu arquivo de robôs: