Apache服务器通过.htaccess文件设置防盗链

Apache服务器通过.htaccess文件设置防盗链

更新时间:2020-06-28 18:10:23

概述

如果您使用的是Apache服务器,那么可以使用.htaccess文件进行设置,从而防止其他站点的用户盗链站点的文件。本文以通过.htaccess文件来防止网站的图片、压缩文件或视频等非HTML文件被盗链为例进行介绍。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

使用.htaccess禁止盗链示例

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !sudu.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !Google.cn [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .*.(gif|jpg)$ http://sudu.cn/no.png [R,NC,L]

说明

  • RewriteCond %{HTTP_REFERER} !^$ [NC]:允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时显示图片文件。一般而言,这是可选的,不过,不建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说用户通过代理服务器访问会出现问题。
  • RewriteCond %{HTTP_REFERER} !webeta.cn [NC]:设置允许访问的HTTP来源,包括自身的站点、Google、Baidu、Bloglines、Feedburner等。
  • RewriteRule .*.(gif|jpg|png)$ http://webeta.cn/no.png [R,NC,L]:定义被盗链时替代的图片,让所有盗链JPG、GIF、PNG等文件的网页,显示根目录下的no.png文件。注意:替换显示的图片不要放在设置防盗链的目录中,并且该图片文件体积越小越好。当然你也可以不设置替换图片,而是使用下面的语句即可。
    RewriteRule .*.(gif|jpg|png)$ - [F]
  • 说明一下其中的R、NC和 L:
    • R:就是转向的意思。
    • NC:不区分大小写。
    • L:指明本次转向到此结束,后续的转向不受先前判断语句的影响。
  • 防止盗链的文件类型:上例中是JPG、GIF、PNG,而根据需要,可更改或添加其他文件类型,如rar、mov等,不同文件扩展名间使用|分割。

更多信息

当您遇到服务器使用流量过大问题时,站点文件被盗链是其中最为主要的部分。盗链是指其他网站直接链接您网站上的文件,一般来说,盗链的对象大多为很耗带宽的大体积文件,例如图片、视频等。这样会增加服务器的流量负担,影响我们网站的访问速度。

适用于

  • 云虚拟主机