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.111cn.net/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.111cn.net$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.www.111cn.net/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.www.111cn.net$ [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.111cn.net /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://domain.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]
|
即可。 |