这篇文章的标题比较古怪,主要是因为我这篇似乎不好综合一个合适的标题,仅为记录,本文主要是记录有关.htaccess的配置,其中包括用.htaccess屏蔽恶意的User Agent等。在开始前,我们先了解什么是.htaccess,什么是User Agent。
小常识
1.什么是.htaccess
.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过.htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。我们常见的比如伪静态规则,就是写入.htaccess文件中。
2.什么是User Agent
User Agent翻译为中文称为用户代理,它是一个特殊字符串头,使得服务器能够识别访客使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等信息。
.htaccess简单介绍
其实上面的解释,下面我们来说说.htaccess的基本配置。
.htaccess我们可以利用它屏蔽搜索引擎蜘蛛的访问,可以封锁指定国家的IP段,还能用它防止图片或者文件被盗链,又或者用它自定义出错页面,重定向请求等。这里,我们先简单说下如何使用.htaccess屏蔽搜索引擎蜘蛛,比如百度,搜狗等,我们在.htaccess文件中加入:
SetEnvIfNoCase User-Agent "^Baidu" bad_bot
SetEnvIfNoCase User-Agent "^sogou" bad_bot
SetEnvIfNoCase User-Agent "^Bloghoo" bad_bot
SetEnvIfNoCase User-Agent "^Scooter" bad_bot
Deny from env=bad_bot
下面我们看看如何用.htaccess防止图片盗链(如果您使用CP面板的主机,请不要这么麻烦,直接到面板中操作即可),我们将下面的内容加入.htaccess就可以了。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !zrblog.net [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bbs.zrblog.net [NC]
RewriteRule .*\.(gif|jpg|png)$ – [F]
上面的RewriteCond %{HTTP_REFERER} !^$ [NC]表示允许用户直接输入图片地址显示,接下来几行分别设定了允许的http访问来源,包括我们自己,google,百度等,最后一行拒绝被盗链的文件格式,可以自己添加。
User Agent简单介绍
其实,.htaccess的用途非常广,远不止上面我所说的,因为个人的水平所限,其他更牛逼的玩法,大家就自行google之。因为,我今天特别提到这个User Agent,所以,我后面要说下如何使用.htaccess屏蔽恶意User Agent。
首先,我们随意的截取一段网站访问日志。
如上图,这是我随便找的一个网站访问日志的截图,后面的Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1这个部分,就是User Agent,从这段我们可以看到访客的操作系统,浏览器等信息(下面的我只是举例用.htaccess屏蔽User Agent,并非标准,切记)。
#Begin Deny Useragent
RewriteCond %{HTTP_USER_AGENT}
".*Gecko/2008070208.*"
[OR]
RewriteRule ^(.*)$ http://zrblog.net/
#
End
Deny
其实,正常访问的记录是无需去屏蔽的,主要是我们的网站遭遇恶意访问的时候,就可以参考设定了。
注:以上.htaccess需apache服务器引擎,nginx不适用。