【问题标题】:Exclude Crawler from Subdomain with .htaccess使用 .htaccess 从子域中排除爬虫
【发布时间】:2014-07-01 09:44:48
【问题描述】:

我想阻止 Crawler 抓取子域 tools.subdomain.com 我在 Internet 上找到了一个 Snippet,它显示以下 Rewrite Rule:

RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]

我怎样才能设法阻止该子域上的那些爬虫,或者只允许当前最新的浏览器访问该子域?我想通过 .htaccess 来管理它,因为不是每个爬虫都接受 robots.txt。对于 robots.txt,我有以下重写条件。

RewriteCond %{HTTP_HOST} =testing.subdomain.com
RewriteRule ^robots\.txt$ /robots_testing.txt [L]

干杯

斯文

【问题讨论】:

    标签: php apache .htaccess mod-rewrite web-crawler


    【解决方案1】:

    这取决于您的服务器布局。

    隔离子域

    如果子域有自己的文档根目录,只需在子域的文档根目录中放置一个 .htaccess 文件并写入您在 htaccess 文件中指定的指令即可:

    RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
    RewriteRule .* - [R=403,L]
    

    共享子域

    如果子域使用与顶级域相同的文档根,则在上面添加RewriteCond 就足够了:

    RewriteCond %{HTTP_HOST} ^tools\.subdomain\.com$
    RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
    RewriteRule .* - [R=403,L]
    

    请注意(1):语法^tools\.subdomain\.com$ 需要与主机的全名完全匹配;另外,由于是正则表达式,点必须用反斜杠转义。

    请注意 (2):最后一个 RewriteCond 的语法可能会根据您要排除的机器人而有所不同。

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多