使用.htaccess来防止图片被盗链

添加时间:17-06-28 所属分类:PHP工具与代码
  https://www.biaodianfu.com/htaccess-dis ... nking.html

具体操作,在图片目录下放置.htaccess的文件(Windows主机貌似不支持此功能),内容如下

  [code]RewriteEngine on

  RewriteCond %{HTTP_REFERER} !^$ [NC]

  RewriteCond %{HTTP_REFERER} !biaodianfu.com [NC]

  RewriteCond %{HTTP_REFERER} !google.cn [NC]

  RewriteCond %{HTTP_REFERER} !google.com [NC]

  RewriteCond %{HTTP_REFERER} !baidu.com [NC]

  RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]

  RewriteRule ^(.*)$ http:\/\/www.biaodianfu.com\/image\/$1 [L]
[/code]
对Rewrite规则简单的说明下

  [code]RewriteCond %{HTTP_REFERER} !^$ [NC]

  RewriteCond %{HTTP_REFERER} !biaodianfu.com [NC]

  RewriteCond %{HTTP_REFERER} !google.cn [NC]

  RewriteCond %{HTTP_REFERER} !google.com [NC]

  RewriteCond %{HTTP_REFERER} !baidu.com [NC][/code]

这部分代码是判断是否盗链,即,如果用户不是直接输入,不是来源于Google或者百度就执行下列转向:

  [code]RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L][/code]

如果判定以下格式文件(jpg、gif、png、bmp、swf、jpeg)被盗链,就把所有文件用image 目录下的 replace.gif 图片替换掉(需要注意的是替换显示的图片不要放在设置防盗链的目录下)。如果照上面的规则判断出图片请求不是盗链的,就执行以下转向:

  [code]RewriteRule ^(.*)$ http:\/\/image.biaodianfu.com\/image\/$1 [L][/code]

  意思是对目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.biaodianfu/img/logo.gif ,现在就会转到http://image.biaodianfu/image/logo.gif去。在此之前需要把原服务器 img 目录下的文件统统拷贝到图片服务器的 image 目录下,转向才会真正可用。

同样要防止别人盗链只要将文件格式做下改变就可以了。

顺便书名下R、NC 和 L 代表的意思:R 指的是转向,NC 指的是不区分大小写 ,L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响。

另外推荐一个在线生成防止盗链的.htaccess文件的网站:http://www.htmlbasix.com/disablehotlinking.shtml

前篇:山东商品房保修期7月起写进合同 从交房那天... 后篇:用CURL代替file_get_contents抓取GZIP压缩后...
发表我的评论


推荐文章   烧50万欠条村医:教精神病患者名人名言...   父母要当好孩子的一面镜子   济南春季踏青旅游指南出炉 出门感受好春...   当64岁的她出现在时尚会场,酷炫永远不...   女子28年前遭遗弃 如今赡养7位老人
随机文章   PHP错误Warning: Cannot modify header...   PHP 不用iconv()函数 gbk转到unicode(u...   php 不用iconv()函数 UTF8转GB2312字符...   php中gb2312跟unicode码的转换   php 用iconv()函数 解UNICODE编码 UTF-...
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555