【发布时间】:2015-12-17 16:33:27
【问题描述】:
我目前在我的.htaccess 文件中有以下规则,我使用的是 WordPress,这是我通过搜索网络得出的代码,
# BLOCK BAD BOTS
<IfModule mod_setenvif.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
SetEnvIfNoCase User-Agent "^$" keep_out
SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (libwww|planetwork|pycurl|skygrid) keep_out
SetEnvIfNoCase User-Agent (purebot|comodo|feedfinder) keep_out
SetEnvIfNoCase User-Agent (scanner|crawl|robot|spider) keep_out
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</Limit>
</IfModule>
RewriteCond %{HTTP_REFERER} ^-?$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^bot\*$ [OR]
RewriteCond %{REQUEST_METHOD} !^HEAD$ [OR]
RewriteCond %{REQUEST_URI} !^/robots\.txt
RewriteRule .* - [F,L]
但我看到我的服务器日志,发现一个机器人能够访问,描述如下,
bot 带有字符串“bot”,后跟以下符号之一 -()&?
所以我的问题
1) 如何删除以字符“bot”开头的机器人
2) 如果您发现当前规则有任何问题,请检查并告诉我。
3) 我同时使用 SetEnvIfNoCase 和 RewriteCond 这是否有效?
【问题讨论】:
标签: php regex wordpress apache .htaccess