合理利用被盗链的​已删除照片

2014年03月11日 12:43 by:老修

很多博客/网站开启了图片防盗链的设置, 我不反对防盗链, 但是我的博客没有开启防盗链, 原因是目前的服务器还能承受访问压力, 自2007年至今由于时间的积累, 博客一些文章也被转载了, 有的网站为了省事连图片直接Copy到自己的网站, 这就导致了大量的盗链图片, 图片盗链不重要, 重要的是随着时间的过度, 有的老图片已经删除了, 但是这些盗链的图片就不能正常显示了, 这是对盗链网站的不负责, 所以我决定合理利用已删除的以及不能访问的图片.  

图片防盗链是比较简单的技术, 以php为例:

如果网站的空间支持url重写, 可以用.htaccess文件中设置 防盗链:

  1. RewriteEngine on
  2. RewriteCond %{HTTP_REFERER} !^$ 
  3. RewriteCond %{HTTP_REFERER} !^http://(www.)?baidu.com(/)?.*$ [NC] 
  4. RewriteCond %{HTTP_REFERER} !^http://(www.)?google.com(/)?.*$ [NC] 
  5. RewriteCond %{HTTP_REFERER} !^http://(www.)?lao8.org(/)?.*$ [NC] 
  6. RewriteRule .*.(gif|jpg|jpeg|bmp|png)$http://www.lao8.org/images/daolian.gif[R,NC,L] 

第三行和第四行分别是允许百度和谷歌搜索的. 第五行的网址改成自己的, 第六行把要替换的图片改成自己的. 

这样就可以防止别的网站盗链了. 

用程序防盗链的方法:

老修的博客并没有做防盗链, 但是我设置了自定义404错误页, 我只是在这个网页中加了点程序就合理利用不能访问的盗链图片了;

原理是这样的, 详细代码我就不贴了. 

  1. $_SERVER['HTTP_HOST'] //获取主机域名/端口
  2. $_SERVER["REQUEST_URI"] //获取url 
  3. //$_SERVER['HTTP_REFERER'] //如果是转跳的用这个
  4. if(.......){
  5.     //判断来源
  6. ............
  7.     //判断是否是图片, 如果是图片就显示设定的图片. 
  8. }

以上就是我在404判断不能访问盗链图片而显示预设图片的代码原理. 

最终的效果如下, 来个截图:

图片防盗链效果