0

我正在尝试为带有类别和搜索过滤器的页面编写 .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[param1]=value&...
  • 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]
4

1 回答 1

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]
于 2013-09-17T13:23:16.103 回答