Php 通过htaccess阻止来自子域的爬虫程序
我们公司有临时开发URL,这些URL正在被搜索引擎索引。我们需要通过一个全局htaccess文件来停止此操作。所谓全局,我的意思是我想把这个访问放到我们的根目录中,它将为每个站点应用规则。每次我们建立一个新站点时,我都不想把htaccess文件放到那个文件夹中 我写htaccess规则很糟糕,否则我会自己写的。如果社区能提供任何意见,我将不胜感激 下面是一个临时url示例:1245.temp.oursite.comPhp 通过htaccess阻止来自子域的爬虫程序,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我们公司有临时开发URL,这些URL正在被搜索引擎索引。我们需要通过一个全局htaccess文件来停止此操作。所谓全局,我的意思是我想把这个访问放到我们的根目录中,它将为每个站点应用规则。每次我们建立一个新站点时,我都不想把htaccess文件放到那个文件夹中 我写htaccess规则很糟糕,否则我会自己写的。如果社区能提供任何意见,我将不胜感激 下面是一个临时url示例:1245.temp.oursite.com RewriteEngine on RewriteCond %{HTTP_USER
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} AltaVista [OR]
RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} Slurp
RewriteRule ^.*$ "http\:\/\/oursite\.com" [R=301,L]
我尝试过使用这个,但正如我上面所说的,我在编写htaccess规则方面很糟糕
编辑
问题类似于,但我的问题涉及子域。如果你不想让搜索引擎为网站编制索引,请在这些子域中添加一个
robots.txt
文件。它应包括:
User-agent: *
Disallow: /
所有主要的搜索引擎都遵守网络机器人标准。如果你只是想要一个通用文件来阻止机器人,那么你可以使用类似的东西。这不是特定于域的
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*(AltaVista|Googlebot|msnbot|Slurp).*$ [NC]
RewriteRule .* - [F,L]
编辑:如果您的子域可以从主根.htaccess文件访问,那么您可以使用类似这样的方法以及它应该阻止访问的任何临时域
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*(AltaVista|Googlebot|msnbot|Slurp).*$ [NC]
RewriteCond %{HTTP_HOST} ^([0-9]+)\.temp\.oursite\.com$ [NC]
RewriteRule .* - [F,L]
您不需要逃避规则的目标部分。只需使用
http://oursite.com/
。可能是Mike的复制品,这不会阻止机器人攻击我们的网站吗?@Geoffrey查看我对我答案的编辑,看看这是否是你想要的。@ceejayoz当然有,但我不是一个读心术的人。我使用了OP所说的,因为他没有明确表示他想阻止他们。他可能只想要某些他想要阻止的坏的。我在他已经在做的事情的背景下回答了他的问题。不,这不是怎么回事。我们不会因为OP不知道去问他们,就假装没有更好的解决方案。@ceejayoz那么,既然OP想要,为什么会被否决呢。这没道理。@Geoffrey没问题,很高兴我能帮你找到答案。我们有3000多个临时URL。我不想删除/编辑每个机器人的robots.txt。@Geoffrey您在没有配置管理系统的服务器上有3000多个站点?勇敢。不过,通过服务器配置为所有临时URL提供单个共享robots文件应该相对容易。我没有选择服务器配置,也没有选择服务器配置的方式。我几个月前才开始在这里工作,我同意他们的设置是垃圾。但我得用已经存在的东西。您的响应是正确的,但是在这种情况下,对于我们现有的服务器配置来说没有多大意义。我也已经尝试让主机调整httpd.conf以指向robots.txt文件,但它们不会。