我可以阻止Apache Web服务器上每个站点的搜索爬虫吗?

Nic*_*ick 18 apache search web-crawler httpd.conf

我在公共互联网上有一些登台服务器,运行一些网站的生产代码副本.如果登台网站被编入索引,我真的不喜欢它.

有没有办法可以在登台服务器上修改我的httpd.conf来阻止搜索引擎抓取工具?

由于我使用脚本将相同的代码库复制到两个服务器,因此更改robots.txt将无法正常工作.此外,我宁愿不更改虚拟主机conf文件,因为有一堆网站,如果我建立一个新网站,我不想记得复制某个设置.

jsd*_*ton 34

使用以下内容创建robots.txt文件:

User-agent: *
Disallow: /
Run Code Online (Sandbox Code Playgroud)

将该文件放在登台服务器上的某个位置; 你的目录根是一个很好的地方(例如/var/www/html/robots.txt).

将以下内容添加到httpd.conf文件中:

# Exclude all robots
<Location "/robots.txt">
    SetHandler None
</Location>
Alias /robots.txt /path/to/robots.txt
Run Code Online (Sandbox Code Playgroud)

SetHandler指令可能不是必需的,但是如果你使用像mod_python这样的处理程序可能需要它.

现在,将为服务器上的所有虚拟主机提供robots.txt文件,覆盖您可能拥有的各个主机的任何robots.txt文件.

(注意:我的答案基本上与ceejayoz的答案建议你做的一样,但我不得不花费额外的时间来弄清楚所有具体细节才能让它发挥作用.我决定把这个答案放在这里为了别人的利益谁可能偶然发现这个问题.)