我们开发网站,并将QA环境托pipe在与生产环境相同的服务器上。 我想为所有质量检查站点提供特定的robots.txt,但不是针对生产站点。 我们有很多站点,所以我不想更新数百个虚拟主机configuration块。 QA站点很容易从域名和目录中识别.QA和生产站点分为两个不同的目录。 所有质量检查站点都托pipe在* .qa.mycompany.com下。
生产示例:host:example.org docroot:/var/www/production/example.org
示例QA:host:example.qa.mycompany.com docroot:/var/www/qa/example.org
有没有办法将Apacheconfiguration为为所有QA站点提供robots.txt,而不需要更新所有QA vhostconfiguration?
你可以添加这个
<Directory "/var/www/qa/*"> Redirect permanent robots.txt http://example.com/qa_robots.txt </Directory>
比你可以把你的qa-robots.txt放在全局主机上的publicaayay上,Directory-block应该redirect到所有的/ qa /文件夹。
search引擎也应该遵循这个redirect。
你也可以添加,而不是redirect
ErrorDocument 404“/var/www/qa_robots.txt”
但是,这将发送404错误代码我不知道如何searchbots reckt在这个。 我想也可以用mod_rewrite和一个匹配的RewriteCond来做到这一点
你可以用mod_alias & If语句来完成 ,把它添加到你的服务器conf中:
Alias /robots.txt /path/to/robots.txt Alias /qa_robots.txt /path/to/robots.txt <If "%{DOCUMENT_ROOT} =~ /(\x2Fvar\x2Fwww\x2Fqa\x2F)/"> RewriteRule ^robots\.txt$ qa_robots.txt </If>
如果语句仅在Apache 2.4上可用,并且您将问题标记为2.2和2.4,那么如果您使用的是Apache 2.2,则可能无法解决您的问题
因为你不能在x2F / in语句x2F /replace为x2F
我没有testing它,但它应该理论上的作品。