当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > apache Rewrite防盗链设置方法

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

Unix/Linux 中的 apache Rewrite防盗链设置方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 56 ::
收藏到网摘: n/a

现在做网站,都会遇到盗链的问题,包括图片盗链、音乐或视频文件(如mp3、Flash等)盗链.相信很多朋友都曾遇到过网站内文件特别是图片被盗链的情况烦。所谓盗链,是指对方网站直接链接您网站上的文件,而不是将其置于自己的服务器上,一般而言,盗链的对象大多为较耗带宽的大体积文件,如图片、视频等,从某种意义上说,这事实上造成了让您为其访问流量买单:不仅您的服务器带宽被无任何回报地占用,而且,往往会在很大程序上影响您网站的访问速度。
下面我们就以图片为例子来说明这个.我们要实现的是不仅屏蔽/禁止非本网站的盗链访问,还将盗链请求转给自身的网站,让读者知道谁是真正的发布者(图片源网站)
设置 .htaccess 禁止图片盗链
RewriteEngine on
打开重写url
RewriteCond %{REQUEST_URI} !^/allow/.*$
排除的url.这个相当的重要,因为后面的referer过滤时会过滤这些.所以打开这个可以"盗链",这样才能让用户正确的显示出错的网站.
RewriteCond %{REQUEST_FILENAME} \.(gif|jpeg|png|jpg)$ [NC]
以上为判断是否为图片文件:您也可以根据自己的需要设置更多的文件类型。也可以是exe之类
RewriteCond %{HTTP_REFERER} !^$
上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。建议,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如直接在url地址栏中输入地址
RewriteCond %{HTTP_REFERER} !php-oa\.org [NC]
RewriteCond %{HTTP_REFERER} !google\.com [NC]
RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
设置允许访问的HTTP来源,包括网站自身、Google、Baidu、等。
RewriteRule (.*) /allow/error.gif [R=301,NC,L]
将不满足referer条件的访问重定向至error.gif。有没有发现error.gif位于允许“盗链”的目录allow中,要相当注意,不然,警告信息和图片将无法在对方网站上显示。
如上,就实现了我们要的功能。不仅屏蔽/禁止非本网站的盗链访问,还将盗链请求转给自身的网站,让读者知道谁是真正的发布者(图片源网站)
其他类型文件的防盗链设定
如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链,可以同样采取上述策略,比如说,对Flash文件,可用类似如下的设置:
RewriteCond %{REQUEST_URI} ^/allow
RewriteCond %{REQUEST_FILENAME} \.swf$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !php-oa\.org [NC]
RewriteRule (.*) /allow/error.swf [R=301,NC,L]
当然,需要事先有声明版权信息的flash文件“error.swf”。其他如mp3文件、压缩文件(zip或rar)盗链的设置和这个一样。