Apache服务器下防止图片盗链的办法

Apache服务器下防止图片盗链的办法
如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡。

这样一来,可以防止其它网站盗用你的图片,浪费你宝贵的流量。


先来说说如何设置。
比如你的图片都在images目录下,那就在该目录下创建一个名为.htaccess的文件,编辑内容如下:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !ipmay.com [NC]
RewriteCond %{HTTP_REFERER} !bing.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /public/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http://image.ipmay.com/images/$1 [L]
可以看出,是利用Apache的.htaccess设置来通过判断HTTP_REFERER来实现

大概解释下:
1. 如果不是这几个域名(ipmay.com,cn.bing.com,google.com,baidu.com)请求图片的网页,也就是盗链网站,则转向/public/replace.gif这个图片。
2. 如果是以上域名的话,则转向外部专用图片服务器image.ipmay.com相应的目录中。

当然了你得先把原服务器images目录下的文件统统拷贝到临时服务器的images目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了.


如果直接输入的网页也要屏蔽的话,是没有HTTP_REFERER信息的,可以用以下规则来实现。
RewriteCond %{HTTP_REFERER} ^$ [NC]
RewriteRule ^images/(.*).(jpg|gif|png|bmp|swf|jpeg) /public/replace.gif [L]
若想屏蔽直接访问的请求,将以上两行代码加于“RewriteEngine On”一行后面。反之,只需要加以上两行代码中的第一行即可。


3