问题
如何拒绝对某特定扩展名文件的下载,如何防盗链
解决方案
虚拟主机服务器上,如果有过多的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后,即可防止其他站点盗链,而自己的站点还可以继续访问。
上述指令不仅作用于全局,同样可以作用于每一个虚拟主机VirtualHost块,使每个虚拟主机有独立的防盗链机制
评分
原文地址:https://www.cnblogs.com/sfqas/p/12181817.html
时间: 2024-10-09 07:39:01