在特定目录上阻止爬虫
blocking crawlers on specific directory
我的情况类似于 a previous question,在接受的答案中使用以下内容:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]
上面 URL 提供的规则似乎阻止访问所有内容(包括主页级别)
www.example.com/tbd_templates/
www.example.com/custom_post/
我真正需要的是阻止访问我指定的目录(/tbd_templates/
、/custom_post/
等,状态代码为 403)但允许访问站点结构的其余部分。
我的.htaccess
是:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
谁能帮帮我?
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]
如链接答案中所述,此代码需要放入您要保护的目录内的 .htaccess
文件中 - 以便它仅适用于该目录中的所有内容(由 .*
正则表达式).
但是,如果您需要保护多个目录,那是不切实际的。在这种情况下,您应该更改 RewriteRule
模式 以针对您要保护的特定子目录(在链接的答案中提到,但没有给出示例)。
例如,以下需要在 before WordPress 代码块(即 before the # BEGIN WordPress
评论标记). (您不需要重复 RewriteEngine
指令,该指令已在文件中 之后 出现。)
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule ^(tbd_templates|custom_post)($|/) - [F]
RewriteRule
指令的第一个参数( 模式)是一个 regular expression 匹配请求的 URL-path,减去斜杠前缀。
正则表达式 ^(tbd_templates|custom_post)($|/)
匹配 /tbd_templates
或 /custom_post
(使用正则表达式 交替 )或 /tbd_templates/<anything>
或 /custom_post/<anything>
.
F
标志是 R=403
的缩写。这里不需要 L
标志,它在使用 F
(或 R=403
)时隐含。
我的情况类似于 a previous question,在接受的答案中使用以下内容:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]
上面 URL 提供的规则似乎阻止访问所有内容(包括主页级别)
www.example.com/tbd_templates/
www.example.com/custom_post/
我真正需要的是阻止访问我指定的目录(/tbd_templates/
、/custom_post/
等,状态代码为 403)但允许访问站点结构的其余部分。
我的.htaccess
是:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
谁能帮帮我?
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC] RewriteRule .* - [R=403,L]
如链接答案中所述,此代码需要放入您要保护的目录内的 .htaccess
文件中 - 以便它仅适用于该目录中的所有内容(由 .*
正则表达式).
但是,如果您需要保护多个目录,那是不切实际的。在这种情况下,您应该更改 RewriteRule
模式 以针对您要保护的特定子目录(在链接的答案中提到,但没有给出示例)。
例如,以下需要在 before WordPress 代码块(即 before the # BEGIN WordPress
评论标记). (您不需要重复 RewriteEngine
指令,该指令已在文件中 之后 出现。)
RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule ^(tbd_templates|custom_post)($|/) - [F]
RewriteRule
指令的第一个参数( 模式)是一个 regular expression 匹配请求的 URL-path,减去斜杠前缀。
正则表达式 ^(tbd_templates|custom_post)($|/)
匹配 /tbd_templates
或 /custom_post
(使用正则表达式 交替 )或 /tbd_templates/<anything>
或 /custom_post/<anything>
.
F
标志是 R=403
的缩写。这里不需要 L
标志,它在使用 F
(或 R=403
)时隐含。