方法1:Apache防盗链的第一种实现方法,可以用rewrite实现

(1.)首先要确认Apache的rewrite module可用,打开 httpd.conf 文件,如果前面有注释去掉

LoadModule rewrite_module modules/mod_rewrite.so

(2.)在Apache主配置文件中找到对应的位置(或虚拟主机中),规则配置在<Directory>里面加入下列代码 [ 也可在需要防盗链的目录下新建 .htaccess,写入一下内容 ]:

#防盗链配置
RewriteEngine On #启用重写
RewriteCond %{HTTP_REFERER} !^$ #允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示
RewriteCond %{HTTP_REFERER} !benet\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !www\.benet\.com/.*$ [NC] #设置允许访问的HTTP来源,包括网站自身
RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/about/nolink.png [R,NC,L] #将不满足referer条件的访问重定向至nolink.png。nolink.png位于允许“盗链”的目录about中,要相当注意,不然,警告信息和图片将无法在对方网站上显示。

相关选项的解释

1.RewriteEngine On#启用rewrite,要想rewrite起作用,必须要写上

2.RewriteCond test-string condPattern #写在RewriteRule之前,可以有一或N条,用于测试rewrite的匹配条件,具体怎么写,后面会详细说到。

3.RewriteRule Pattern Substitution#规则

4. %{HTTP_REFERER}:服务器变量,HTTPReferer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

5.[ NC]指的是不区分大小写,[R]强制重定向redirect

6.字母L表示如果能匹配本条规则,那么本条规则是最后一条(Last),忽略之后的规则。

防盗链配置的说明:

1. 红色部分:表示自己的信任站点。对我的站点来说,设置为 http://www.benet.com和 http://benet.com

2. 绿色部分:要保护文件的扩展名(以|分开)。以这些为扩展名的文件,必须通过红色标注的网址引用,才可以访问。

3. 蓝色部分:定义被盗链时替代的图片,让所有盗链 jpg、gif、swf 等文件的网页,显示网页文档根目录下的about/ nolink.png 文件。注意:替换显示的图片不要放在设置防盗链的目录中,并且该图片文件体积越小越好。

当然你也可以不设置替换图片,而是使用下面的语句即可:RewriteRule .*\.(gif|jpg|png)$ - [F]

:[F] (强制URL为被禁止的forbidden),强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的)。

方法2:通过判断浏览器头信息来阻止某些请求

即利用SetEnvIfNoCase和access。这个方法可以通过阻止某些机器人或蜘蛛爬虫抓取你的网站来节省你的带宽流量。

语法: SetEnvIfNoCase attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...

注:Referer :指明了请求当前资源原始资源的URL,使用referer是可以防盗链

(1.)在Apache主配置文件中找到对应的位置(或虚拟主机中),加入下列代码:

SetEnvIfNoCase Referer "^$" local_ref
SetEnvIfNoCase Referer "www.benet.com/.*$" local_ref
SetEnvIfNoCase Referer "benet.com/.*$" local_ref
<filesmatch "\.(mp3|mp4|zip|rar|jpg|gif)"> #2.4版本以上,方法如下:
Require all denied
Require env local_ref
</filesmatch> # 2.4版本以下的
# 方法一:
Order Deny,Allow
Allow from env=local_ref
Deny from all
# 方法二:
Order Allow,Deny
Allow from env=local_ref

相关文章链接:Apache的防盗链配置及详解      

        nginx如何设置防盗链

最新文章

  1. css(二)
  2. SVM实现邮件分类
  3. Android性能优化文章转载
  4. OnScrollListener分页加载
  5. Uva 11090 在环中
  6. [Under the hood]---Matt Pietrek October 1996 MSJ
  7. Linux多线程编程阅读链接
  8. PDF合并
  9. 基于Hadoop生态圈的数据仓库实践 —— ETL
  10. Linux学习笔记22——线程属性(转)
  11. HDU_2056——相交矩形的面积
  12. python学习之路-6 冒泡算法、递归、反射、os/sys模块详解
  13. 实现透明渐变的Activity
  14. 数组(Array)资源
  15. 一天搞定CSS: 标签样式初始化(CSS reset)及淘宝样式初始化代码--09
  16. hibernate框架学习笔记8:一对多关系案例
  17. 【DevExpress】邮箱制作小结
  18. dubbo源码分析2——SPI机制中的SPI实现类的读取和预处理
  19. Struts2 标签库详解
  20. Could not get lock /var/lib/dpkg/lock的解决方法

热门文章

  1. Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决
  2. Top 10 Machine Learning Algorithms For Beginners
  3. jenkins编译时文件存放的位置
  4. EMQ配置通过nginx反向代理wss和ws
  5. 【Chrome插件】Session Buddy--搁置标签页
  6. C#等比例缩放图片
  7. Angular 发布订阅模式实现不同组件之间通讯
  8. linux中matlab的中文乱码问题
  9. Centos7.5 添加环境变量并生效
  10. js判断是Android还是iOS