Apache Rewrite 实现网站防盗链

四月底的时候邮箱里收到一封来自虚拟主机提供商的邮件,说我的流量超标,并且网站已经被挂起。
我百思不得其解,每月15GB的流量,对于一个非下载网站来说应该已经是相当充足的了。
于是到后台检查,发现大量的来自百度、QQ旋窝的请求,而目标都是我附件目录下的MP3文件。
赶快连上网站的ftp,发现网站中的robots.txt文件存在,而且也的确屏蔽了附件目录,但依然被百度收录了。
无奈,只好对附件目录进行反盗链处理,采用的是Apache Rewrire

在需要反盗链的文件夹下建立一个文件
.htaccess

注:这个文件在Windows是无法正常建立的,可以先改名为htaccess上传到服务器后再加上前面的那个点。
Cuteftp想要看到这类文件,需要执行以下步骤:
选择“站点管理器”标签
右击需要修改的站点名,选择“属性”
选择“动作”标签,单击“过滤”
勾选“启动过滤”
勾选“启动服务器端过滤”
参数一栏里填入“-a”即可

.htaccess文件内容如下:

[code]RewriteEngine on
RewriteCond %{HTTP_REFERER} !peuol.com [NC]
RewriteRule .*\.(mp3|wma|rar)$ http://www.peuol.com/blog/go.php/component/ToDownloader [R,NC,L][/code]

RewriteEngine on
启用重写规则
RewriteCond %{HTTP_REFERER} !peuol.com [NC]
来源不是peuol.com的请求将受到下面的重写规则影响
RewriteRule .*\.(mp3|wma|rar)$ http://www.peuol.com/blog/go.php/component/ToDownloader [R,NC,L]
把后缀为mp3、wma的文件重定向到http://www.peuol.com/blog/go.php/component/ToDownloader页面

一些常用参数:
RewriteCond下:
[NC]  不分字母大小写
[OR]  用于连接下一条规则

RewriteRule下:
[R] 强制重定向,[R=code] code默认为302
[F] 禁用URL,返回HTTP 403 错误
[L] 这是最后一条规则,之后内容无用

效果图:红线下是开启防盗链后的流量

[img][attach]161[/attach][/img]

这个只是apache rewrite mod 的一些简单应用,更详细的rewrite教程可以参照以下网站:
http://w.yi.org/ftp/FAPM/apache/Apache2/zh/misc/rewriteguide.html
关于正则表达式,可以参考:
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm

本文部分内容来自:
http://www.suoyishuo.com/archives/how-to-write-htaccess-rewrite.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注