Apache使用.htaccess防盗链禁止用户下载

今天遇到一个客户,做视频站的,用的是Html5播放器,最开始想隐藏真实地址,尝试了很多办法都没办法隐藏,最后尝试CK切段处理,但是用户体验效果不好,切段多了会出现卡顿情况。

最后没办法和客户商议后决定采用防盗链,禁止非绑定的域名访问下载视频,同样看了很多教程,完全是一脸懵逼不知道怎么操作。

只能不断尝试,最后还是给解决了,方法如下

SetEnvIfNoCase Referer "^http://youer.com" local_ref=1
SetEnvIfNoCase Referer "^http://www.youer.com" local_ref=1
<FilesMatch "\.(gif|jpb|png|css|js|swf|mp4)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

只需要将以上代码粘贴之.htaccess文件中并重启Apache即可;

需要注意的是SetEnvIfNoCase Referer可以无限添加,有多少域名就添加多少域名,

红色部分是需要防止盗链的文件后缀,设置比较多,建议CSS与JS还是不要屏蔽的好,屏蔽这么多属于无奈,客户要求。

重启Apache访问视频路径效果就出来了;防盗链会爆403错误,不用紧张属于正常;

有能力可以制作一个精美的403页面,或者找大搜下载一个就行。

原文地址:https://www.cnblogs.com/shenjingwa/p/11403020.html

时间: 2024-10-05 04:55:03

Apache使用.htaccess防盗链禁止用户下载的相关文章

htaccess高级应用:防盗链阻止迅雷下载以及限制访问

导读: 合理利用htaccess文件,即使没有服务器的管理权限可以解决很多问题:比如用htaccess防盗链,阻止迅雷下载,限制用户访问指定类型的文件.判断User-agent阻止迅雷下载. Rewrite的功能很强大, 合理的利用htaccess文件的设置 即使没有服务器的管理权限可以解决很多问题: 1. 用htaccess限制只能访问某种类型文件控制 httpd.conf 配置文件中可以用 Order.Files 及 FilesMatch 命令来阻止用户查看某种类型的文件,但是当用户被拒绝时

Apache和Nginx防盗链的几种配置方法

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫 referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源 文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返 回指定的页面. Nginx防盗链的配置 1.nginx针对文件类型的防盗链配置

Nginx下载防盗链(迅雷等下载软件)

什么是下载盗链   假设我们是一个B站,有些视频资源是可以提供给用户下载的.这时迅雷等其他下载软件,也提供下载该视频的服务, 但是迅雷很不厚道的,将我们的下载资源提供给他的用户,下载.占用我们的带宽来服务他的用户,这是绝对不可以忍了的. 使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效,如果你是 nginx 的话,使用 secure link 完美解决这个问题,远离迅雷. 本文仅用于下载服务器,不适用于图片防盗链. 原理 用户访问 down.php down.php

.htaccess防盗链方法(文件、图片)

http标准协议中有专门的字段记录referer,一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么. 因此所有防盗链方法都是基于这个Referer字段两种方法:第一种是使用apache 文件FileMatch限制,在httpd.conf中增加 ( 其实也可以将把下面的语句存成一个.htaccess文件),并放到你的网站 的根目录(就是www/html目录),这样别人就没有办法盗链了. SetEnvIfNoCase Referer "^http://afis

apache优化之防盗链,日志拆分,ab压力测试

Apache调优之apache防盗链.日志拆分和ab压力测试 1.apache防盗链 盗链,全称是盗取链接,假如我们的网站有很多好看的图片,别人可以查看我们网站图片的链接,然后应用在他的网站上,这样的话,去访问他的网站,实际上消耗的是我们的流量(因为实际链接在我们这里),这样我们就不得不去配置防盗链,使得别人不能复制我们图片的链接 要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示

httpd之防盗链和限制下载

配置httpd防盗链可以用SetEnvIfNoCase和rewrite实现反盗链(Anti-Leech) 一.使用SetEnvIfNoCase,注意放行自己的网址 SetEnvIfNoCase Referer "^http://.*\.sunnysky\.com" local_ref SetEnvIfNoCase Referer ".*\.byqk\.com" local_ref SetEnvIfNoCase Referer "^$" local

86.Apache(httpd)配置--防盗链配置和访问控制

一.配置防盗链 通过防盗链的方式,可以设置限制第三方的站点通过引用的方式获取服务器上的图片,数据等,如果想要获取本站点的图片数据,只能通过本站点访问获取,这样也有效的减少了服务器的资源.什么是referer? referer是http数据包的header的一部分,当浏览器其向服务器发送请求时,将带上referer,以此来告诉浏览器该请求时从什么网页链接过来的,浏览器处理该链接并显示.比如:在A网站的某个也页面http://aaa.com/a.html里面的链接去访问B站的某个页面http://b

apache使用.htaccess文件实现屏蔽wget下载网站内容

经发现,虽然wget遵循 robots.txt 规则,但是那个还是可以绕过去,现在56云小编把我自己使用的屏蔽方法分享给大家: 屏蔽下载任何文件 .htaccess SetEnvIfNoCase User-Agent "^wget" bad_bot <Limit GET POST> Order Allow,Deny Allow from all Deny from env=bad_bot </Limit> 屏蔽下载部分文件 .htaccess SetEnvIfN

使用Apache的.htaccess就可以防盗链

Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当然防盗链可以用程序解决,如PHP: $referer = $_SERVER['HTTP_REFERER']; $selfurl = $_SERVER['HTTP_HOST']; if(false == strpos($referer,$selfurl)){ echo 'phpddt.com防止非法盗