考虑到托管多个虚拟主机的 Web 服务器,是否可以基于主机名模式配置全局别名,该主机名模式也可能与早期定义的主机之一匹配?
一些背景:我们经常为我们的客户使用暂存域,他们可以在尚未正确配置域的情况下查看他们的网站。这使得 virtualhost 指令如下所示:
<VirtualHost 1.1.1.1:80>
ServerName myclient.com
ServerAlias myclient.staging.mycompany.com
....
</VirtualHost>
我想要达到的目标:
我宁愿不将暂存域包含在 Google 结果中。为此,我想 在主机名模式匹配时配置一个Alias
指令。最好不要在每个虚拟主机中包含它,而是在更高级别上配置它。Disallow: /
*.staging.mycompany.com
我试过的:
我尝试VirtualHost
如下配置自定义:
<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>
这是行不通的,因为其他VirtualHost
指令是匹配的,而这个指令被忽略了。
实现这一目标的最优雅的方法是什么?
我通过在每个文件中包含
VirtualHost
以下文件解决了我自己的问题:并在
/usr/local/apache/conf/includes/staging-rewrites.conf
:最后,在我的机器人文件中: