【问题标题】:Block crawlers from subdomain via htaccess通过 htaccess 阻止来自子域的爬虫
【发布时间】:2015-07-30 05:46:53
【问题描述】:

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

我不擅长编写 htaccess 规则,否则我会自己完成。我会感谢社区的任何意见。

这是一个临时网址示例: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 规则方面很糟糕。

编辑 问题类似于this one,但我的问题涉及子域。

【问题讨论】:

标签: php apache .htaccess mod-rewrite


【解决方案1】:

如果您只是想要一个通用文件来阻止机器人,那么您可以使用类似的东西。这不是特定于域的。

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]

【讨论】:

  • @ceejayoz 当然有,但我不是读心术。我使用了 OP 放的东西,因为他没有特别说他想阻止所有这些。他可能只想要某个他想要阻止的bad ones。我根据他已经在做的事情回答了他的问题。
  • 不,这不是 SO 的工作方式。我们不会仅仅因为 OP 不知道询问它们而假装不存在更好的解决方案。
  • @ceejayoz 那么为什么它在 OP 想要的时候被否决了。这没有任何意义。
  • @Geoffrey 没问题,很高兴我能帮你找到答案。
【解决方案2】:

如果您不希望搜索引擎为网站编制索引,请将robots.txt 文件添加到这些子域。它应该包含:

User-agent: *
Disallow: /

所有主要搜索引擎都遵守 Web Robots 标准。

【讨论】:

  • 我们有超过 3,000 个临时网址。我不想为每个人删除/编辑 robots.txt。
  • @Geoffrey 您在没有配置管理系统的服务器上有超过 3,000 个站点?勇敢的。不过,通过服务器配置为所有临时 URL 提供单个共享机器人文件应该相对容易。
  • 我没有选择服务器配置,也没有选择它是如何完成的。几个月前我刚开始在这里,我同意他们的设置是垃圾。但我必须处理已经存在的东西。您的回答是正确的,但是在这种情况下,这对我们拥有的服务器配置没有多大意义。我也已经尝试让主机调整 httpd.conf 以指向 robots.txt 文件,但他们不会。
猜你喜欢
  • 2013-01-04
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2010-09-10
  • 1970-01-01
相关资源
最近更新 更多