Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过htaccess阻止来自子域的爬虫程序_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 通过htaccess阻止来自子域的爬虫程序

Php 通过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

我们公司有临时开发URL,这些URL正在被搜索引擎索引。我们需要通过一个全局htaccess文件来停止此操作。所谓全局,我的意思是我想把这个访问放到我们的根目录中,它将为每个站点应用规则。每次我们建立一个新站点时,我都不想把htaccess文件放到那个文件夹中

我写htaccess规则很糟糕,否则我会自己写的。如果社区能提供任何意见,我将不胜感激

下面是一个临时url示例:1245.temp.oursite.com

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文件,但它们不会。