当前位置: 首页 > 图文教程 > 网络编程 > PHP > Apache的mod_rewrite模块拒绝盗链

PHP
php中目录,文件操作详谈
理解PHP5中static和const关键字的区别
php中支持多种编码的中文字符串截取函数!
关于BIG5-HKSCS的解决方法
自动生成文章摘要的代码[PHP 版本]
完美解决dedecms中的[html][/html]和[code][/code]问题
不错的dedecms修改实用集锦
PHP的分页功能
dedecms中显示数字验证码的修改方法
dedecms中常见问题修改方法总结
用PHP写的MySQL数据库用户认证系统代码
收集的PHP中与数组相关的函数
PHP中动态显示签名和ip原理
实现dedecms全站URL静态化改造的代码
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
在任意字符集下正常显示网页的方法一
在任意字符集下正常显示网页的方法二(续)
经典的PHPer为什么被认为是草根?
dedecms系统常用术语汇总
一篇入门的php Class 文章

PHP 中的 Apache的mod_rewrite模块拒绝盗链


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 177 ::
收藏到网摘: n/a

网站上传了一首mp3做背景音乐,不久,网站流量突然暴增,有几次甚至导致了VPS的当机。后来经过分析:盗链这个MP3的网页包括诸如校内网空间、QQ空间、更有甚者还放到了Taobao小店、个人博客也有不少,全部作为了背景音乐,并且导致各种爬虫疯狂抓取这个文件。找到了问题原因就只有一个办法了,就是利用Apache的mod_rewrite模块把盗链行为拒之门外。

利用.htaccess文件,设置图片mp3歌曲等的防盗链:

前提Apache中的mod_rewrite模块为激活状态,既然要消灭掉mp3文件的盗链就顺便也把图片盗链的设置给做了,下面是我在网站根目录的.htaccess文件中的配置,供同病相怜之人参考:

.htaccess文件中的代码:

以下为引用的内容:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www.)?cpanel123.com/.*$ [NC]
RewriteRule .(txt|doc|jpg|gif|mp3|zip|rar|png)$ http://www.cpanel123.com [R=301,L]

现在盗链的话,就会自动转向到我的主页。

功能:

不仅屏蔽/禁止非本网站的盗链访问,还将盗链请求转给自身的网站,让读者知道谁是真正的原创作者。

代码说明:

RewriteCond 条件:意思就是所有的mp3、rar、图片等,访问如果referer不是本网站cpanel123.com或www.cpanel123.com,

RewriteRule 规则:自动转向到本站主页: http://www.cpanel123.com/

注释掉的部分是测试rewrite engine用的:对于调试mod_rewrite很有用。

其它防盗链的一些设置,大家可以参考:

以下为引用的内容:
#开启mod_rewrite引擎
RewriteEngine On
#设置合法请求源
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !zhangzhang.net [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !msn.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
#指向警告页面
RewriteRule .*\.(gif|jpg|png|mp3)$ outlink.gif [L,NC]