使用参数阻止特定目录的搜索蜘蛛

时间:2013-09-17 13:19:59

标签: .htaccess web-crawler

我正在尝试为包含类别和搜索过滤器的页面编写.htaccess重写。

我想禁止使用.htaccess的特殊地方。 我已经在robots.txt中指定了地点,但是蜘蛛仍在爬行。

我想要允许抓取的地方:

  • www.domain.com/path1.html
  • www.domain.com/path1/path2.html
  • www.domain.com/path1/path2/path3.html
  • www.domain.com/path1/path2/path3.html
  • www.domain.com/path4/path5.html

我想要禁止抓取的地方:

  • www.domain.com/path1.html?search [参数1] =值安培; ...
  • www.domain.com/path1/path2.html?search=param2& ...
  • www.domain.com/path1/path2/path3.html?searchHash=param3

据我了解。搜索参数的htaccess代码会看起来像这样,但是它不正确而且我是堆栈..

RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|yandex) [NC]
RewriteRule ^(.*).html\?search=.*$ http://www.domain.com/$1 [R=301,L]

1 个答案:

答案 0 :(得分:2)

不能与QUERY_STRING中的RewriteRule匹配。你需要像这样使用RewriteCond %{QUERY_STRING}

RewriteCond %{QUERY_STRING} ^search=.+ [NC]
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|yandex) [NC]
RewriteRule ^(.+?\.html)$ http://www.domain.com/$1 [R=301,L,NC]