“如何阻止”;bot*”;通过.htaccess的bot
我的Awstats文件中有以下条目:“如何阻止”;bot*”;通过.htaccess的bot,.htaccess,bots,.htaccess,Bots,我的Awstats文件中有以下条目: Unknown robot (identified by 'bot*') 如何阻止此bot? 我分别尝试了以下方法,但似乎没有一个成功: RewriteCond %{HTTP_USER_AGENT} ^bot* RewriteCond %{HTTP_USER_AGENT} bot\* RewriteCond %{HTTP_USER_AGENT} bot[*] 以下是我使用的完整.htaccess代码: RewriteEngine On Rewri
Unknown robot (identified by 'bot*')
如何阻止此bot?我分别尝试了以下方法,但似乎没有一个成功:
RewriteCond %{HTTP_USER_AGENT} ^bot*
RewriteCond %{HTTP_USER_AGENT} bot\*
RewriteCond %{HTTP_USER_AGENT} bot[*]
以下是我使用的完整.htaccess代码:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^bot*
RewriteRule .? - [F,L]
在第二行测试了三个正则表达式值(^bot*,bot\*,bot[*]),没有一个停止bot。星号(*
)不是文字。AWStats只是说明它使用了该特定规则来检查请求是否由bot发出。在您的例子中,bot*
表示用户代理字符串以bot
开头,并且找到了匹配项
由于星号不是文字,因此可以使用以下符号:
RewriteCond%{HTTP_USER_AGENT}^bot[或]#匹配bot*(与^bot.*$相同)
RewriteCond%{HTTP_USER_AGENT}bot$#匹配*bot(与^.*bot$相同)
注意:我应该在这里说,最好检查您的访问日志,查看这些用户代理是什么,并具体阻止它们。你不想发现自己处于这样一种境地:你正在阻止你可能想要的机器人
建议:将规则从
重写规则更改为[F,L]
到重写规则^-[F,L]
星号(*
)不是文字。AWStats只是说明它使用了该特定规则来检查请求是否由bot发出。在您的例子中,bot*
表示用户代理字符串以bot
开头,并且找到了匹配项
由于星号不是文字,因此可以使用以下符号:
RewriteCond%{HTTP_USER_AGENT}^bot[或]#匹配bot*(与^bot.*$相同)
RewriteCond%{HTTP_USER_AGENT}bot$#匹配*bot(与^.*bot$相同)
注意:我应该在这里说,最好检查您的访问日志,查看这些用户代理是什么,并具体阻止它们。你不想发现自己处于这样一种境地:你正在阻止你可能想要的机器人
建议:将规则从
重写规则更改为[F,L]
到重写规则^-[F,L]
我们可以在.htaccess文件中使用机器人的确切名称阻止机器人。下面的例子肯定会帮助你,目前我使用相同的设置,它保存我的服务器资源
SetEnvIfNoCase User-Agent "Yandex" bad_bot
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
SetEnvIfNoCase User-Agent "MJ12bot" bad_bot
<IfModule mod_authz_core.c>
<Limit GET POST>
<RequireAll>
Require all granted
Require not env bad_bot
</RequireAll>
</Limit>
</IfModule>
setEnvifLocase用户代理“Yandex”坏机器人
SetEnvifLocase用户代理“AhrefsBot”坏机器人
SetEnvifLocase用户代理“MJ12bot”坏的\u bot
要求所有授权
不需要环境坏机器人
如果您有任何疑问,请告诉我。我们可以在.htaccess文件中使用机器人的确切名称阻止机器人。下面的例子肯定会帮助你,目前我使用相同的设置,它保存我的服务器资源
SetEnvIfNoCase User-Agent "Yandex" bad_bot
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
SetEnvIfNoCase User-Agent "MJ12bot" bad_bot
<IfModule mod_authz_core.c>
<Limit GET POST>
<RequireAll>
Require all granted
Require not env bad_bot
</RequireAll>
</Limit>
</IfModule>
setEnvifLocase用户代理“Yandex”坏机器人
SetEnvifLocase用户代理“AhrefsBot”坏机器人
SetEnvifLocase用户代理“MJ12bot”坏的\u bot
要求所有授权
不需要环境坏机器人
如果您有任何疑问,请告诉我。谢谢迈克。我现在正在使用你的第一行,我将在接下来的一两天内查看它是否阻止bot,并在这里相应地更新。你能详细说明你的“建议”吗?为什么要这样改变规则?有人告诉我说用。?因为正则表达式将匹配任何内容(即使是空白)并重定向到指定的失败条件。我用小字体写它,因为它不重要。使用
^
只意味着测试字符串以某个东西开头。基本上,它们是一样的,但我认为我的建议提高了性能。迈克,看来机器人还在访问我的网站。我在Awstats文件中看到它今天访问并创建了点击。这是我的.htaccess代码:RewriteCond%{HTTP\u USER\u AGENT}^spider[NC或]RewriteCond%{HTTP\u USER\u AGENT}^bot[NC]RewriteRule上的RewriteEngine.?-[F,L]我认为机器人无法查看他们请求的内容,但AWStats将继续记录请求。我建议您在浏览器中使用用户代理测试仪来测试向机器人提供的服务。谢谢Mike。我现在正在使用你的第一行,我将在接下来的一两天内查看它是否阻止bot,并在这里相应地更新。你能详细说明你的“建议”吗?为什么要这样改变规则?有人告诉我说用。?因为正则表达式将匹配任何内容(即使是空白)并重定向到指定的失败条件。我用小字体写它,因为它不重要。使用^
只意味着测试字符串以某个东西开头。基本上,它们是一样的,但我认为我的建议提高了性能。迈克,看来机器人还在访问我的网站。我在Awstats文件中看到它今天访问并创建了点击。这是我的.htaccess代码:RewriteCond%{HTTP\u USER\u AGENT}^spider[NC或]RewriteCond%{HTTP\u USER\u AGENT}^bot[NC]RewriteRule上的RewriteEngine.?-[F,L]我认为机器人无法查看他们请求的内容,但AWStats将继续记录请求。我建议您在浏览器中使用用户代理测试仪来测试向机器人提供的服务。