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

时间:2015-05-18 16:06:23

标签: php apache .htaccess mod-rewrite

我们公司有搜索引擎索引的临时开发网址。我们需要通过全局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,但是我的涉及子域。

2 个答案:

答案 0 :(得分:4)

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

User-agent: *
Disallow: /

所有主流搜索引擎都尊重Web机器人标准。

答案 1 :(得分:2)

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

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]