apache服务器防盗链功能可以用两种通用的实现方法,一种是.htaccess禁止盗链,另一种是Apache httpd.conf 文件的中进行配置,下面我来简单的介绍一下图片防盗链配
置例子。
图片防盗链配置规则很简单
RewriteRule .*.(gif|jpg|swf|png)
说明一下其中的R、NC 和 L
R 就是转向的意思
NC 指的是不区分大小写
L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响
5、防止 盗链的文件类型
上例中是 gif、jpg、png,而根据须要 ,可修改 或添加其他文件类型,如rar、mov等,不同文件扩展名间运用 “”分割。
使用 rewrite 技术实现 Apache 防盗链
Apache 防盗链的第一种实现方法,可以用 rewrite 实现。首先要确认 Apache 的 rewrite module 可用:能够控制 Apache httpd.conf 文件的,打开 httpd.conf,确保有这么一行配置:
LoadModule rewrite_module modules/mod_rewrite.so
然后在找到自己网站对应的 配置的地方,加入下列代码:
代码如下:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.lanxinbase.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.lanxinbase.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.www.lanxinbase.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.www.lanxinbase.com$ [NC]
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .*.(gif|jpg|swf|png)$ http://www.www.lanxinbase.com /nolink.bmp [R,NC]
.htaccess实现图片防盗链
注意事项:.htaccess默认是不支持的哦,所以我们先要开启此功能。
打开httpd.conf文件(在那里? apache目录的conf目录里面),用文本编辑器打开后,查找allowoverride none
代码如下:
<directory />
options followsymlinks
allowoverride none
</directory>
改为
<directory />
options followsymlinks
allowoverride all
</directory>
重起apache,这样你的服务器就支持了.htaccess了
使用.htaccess禁止盗链
通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。例如本站的设置如下:
代码如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .*.(gif|jpg)$ http://lanxinbase.com/no.png [R,NC,L]
最后给大家介绍一个RewriteCond %{HTTP_REFERER} !^$ [NC]这句的意思了,很多朋友看不懂。
允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才
能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
如果只是目录我们只要
代码如下:
RewriteEngine On
RewriteBase /blog/
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]