WEB开发网
开发学院服务器WEB服务器Apache 如何拒绝对某特定扩展名文件的下载,如何防盗链 阅读

如何拒绝对某特定扩展名文件的下载,如何防盗链

 2008-01-07 14:10:31 来源:WEB开发网   
核心提示:问题 如何拒绝对某特定扩展名文件的下载,如何防盗链 解决方案 虚拟主机服务器上,如何拒绝对某特定扩展名文件的下载,如何防盗链,如果有过多的mp3等文件,可能会被搜索引擎查到 并且导致巨额的下载量,而自己的站点还可以继续访问, 上述指令不仅作用于全局, 这种情况下,对服务器的负担有很大的影响 那么如和禁止某种特殊文件
问题 
如何拒绝对某特定扩展名文件的下载,如何防盗链 

解决方案 
虚拟主机服务器上,如果有过多的mp3等文件,可能会被搜索引擎查到
并且导致巨额的下载量。
这种情况下,对服务器的负担有很大的影响
那么如和禁止某种特殊文件的下载呢?

编辑/usr/Prima(最完善的虚拟主机管理系统)/etc/httpd/site.conf
在其中加入如下一段:
<FilesMatch "\.(mp3|avi)"> 
Order Deny,Allow
Deny from all
</FilesMatch>
重新启动/etc/init.d/httpd restart
即可拒绝服务器上所有站点目录下的扩展名为mp3和avi的下载
如果要增加扩展名,用竖线隔开即可。

上述方法,将无条件拒绝所有站点的下载和所有来源的连接
那么,用户自己的站点中存在的mp3就无法下载了。
如何能防止别的站点盗链,而自己站点也能下载呢?
假设自己的站点是www.abcd.com,将上边的配置文件中添加的配置修改为如下:

SetEnvIfNoCase Referer "^http://www\.abcd\.com" local_ref=1
<FilesMatch "\.(mp3|jpg|gif)"> 
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>

重新启动apache(Unix平台最流行的WEB服务器平台)后,即可防止其他站点盗链,而自己的站点还可以继续访问。

上述指令不仅作用于全局,同样可以作用于每一个虚拟主机VirtualHost块,使每个虚拟主机有独立的防盗链机制 
 

Tags:如何 拒绝 特定

编辑录入:coldstar [复制链接] [打 印]
赞助商链接