Apache 如何测试用户代理

Apache 如何测试用户代理,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我尝试使用RewriteEngine和htaccess阻止一些机器人程序。对于DotBot和类似的bot,我发现了许多脚本,如: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DotBot RewriteRule ^.* - [F,L] 我只了解一个例外:为什么大多数网站使用^DotBot而不是DotBot。我知道,^是字符串的开头。在我的日志中,我总能找到如下用户代理: Mozilla/5.0 (compatible; DotBot/1.

我尝试使用RewriteEngine和htaccess阻止一些机器人程序。对于DotBot和类似的bot,我发现了许多脚本,如:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^DotBot 
RewriteRule ^.* - [F,L]
我只了解一个例外:为什么大多数网站使用^DotBot而不是DotBot。我知道,^是字符串的开头。在我的日志中,我总能找到如下用户代理:

Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)
使用重写整个字符串进行测试?就我而言,我认为是这样。只有

RewriteCond %{HTTP_USER_AGENT} DotBot
效果很好。但在我的管理系统上,没有办法直接测试它。DotBot是一个非常短的标识符,我试图阻止错误的代理


马里奥

你能试一下吗;这是使用忽略大小写选项查找字符串bot,因为我们无法确定word bot还有什么其他功能,所以为什么不在此处仅查找字符串bot,仅基于您显示的示例/示例,并让我知道这是否有助于您我无法测试它

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} bot [NC] 
RewriteRule ^ - [F,L]

你能试试下面的吗;这是使用忽略大小写选项查找字符串bot,因为我们无法确定word bot还有什么其他功能,所以为什么不在此处仅查找字符串bot,仅基于您显示的示例/示例,并让我知道这是否有助于您我无法测试它

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} bot [NC] 
RewriteRule ^ - [F,L]

使用浏览器扩展让我找到一个有效的条件:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(DotBot|YandexBot|AhrefsBot|MegaIndex|SEOkicks|MJ12bot).*$
RewriteRule ^ - [F,L]

它在根目录中工作。但子目录中的所有文件仍然被忽略。我不知道,哪个重写规则适用于active directory和所有子目录中的所有内容

使用浏览器扩展让我找到一个有效的条件:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(DotBot|YandexBot|AhrefsBot|MegaIndex|SEOkicks|MJ12bot).*$
RewriteRule ^ - [F,L]

它在根目录中工作。但子目录中的所有文件仍然被忽略。我不知道,哪个重写规则适用于active directory和所有子目录中的所有内容

“但是在我的托管系统上无法直接测试。”-有很多浏览器扩展,允许您更改自己的浏览器发送的UA,因此如果您需要测试任何此类设置,您可以通过这种方式非常轻松地进行测试。“但是在我的托管系统上无法直接测试。”-有很多浏览器扩展允许您更改自己的浏览器发送的UA,因此如果您需要测试任何此类设置,您可以通过这种方式非常轻松地完成。将您的条件更改为只重写Cond%{HTTP_USER_AGENT}DotBot | YandexBot | AhrefsBot | MegaIndex | SEOkicks | MJ12bot[NC]这一个怎么样?很抱歉,我无法测试它,因为我没有这个扩展,但从正则表达式的角度来看,这可能会更有帮助,让我知道这是否对您有帮助?将您的条件更改为只重写cond%{HTTP_USER_AGENT}DotBot | YandexBot | AhrefsBot | MegaIndex | SEOkicks | MJ12bot[NC]这个怎么样?很抱歉,我无法测试它,因为我没有该扩展,但从正则表达式的角度来看,这可能会更有帮助,请告诉我这是否有帮助?解决方案的工作原理与预期一致。现在,我使用日志文件实现了所有请求的正确http状态。因此,我认为在某些日子里,机器人只会请求开始页。@Mario,太棒了,很乐意帮忙,谢谢你回到这里。解决方案如预期般工作。现在,我使用日志文件实现了所有请求的正确http状态。因此,我认为在某些日子里,机器人只会请求开始页。@Mario,太棒了,很乐意帮忙,谢谢你回到这里。