.htaccess及User Agent

这篇文章的标题比较古怪,主要是因为我这篇似乎不好综合一个合适的标题,仅为记录,本文主要是记录有关.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。

首先,我们随意的截取一段网站访问日志。

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不适用。


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!