发现自己的文章在网络上被越来越多的人COPY,尤其是个别同志,一口气复制几十篇文章过去,连一个版权都不留,我算是服了。想来想去决定给博客增加一个防盗链功能。
对于虚拟主机用户来说,最方便的莫过于利用.htaccess设置图片防盗链了。上网搜了一下,.htaccess规则写法很多,但是大部分的区别在于最后一行,下面我们先看看正确的.htaccess防盗链写法,稍后我再详细解释一下最后一行的重点。
真正有用的.htaccess写法为
[code lang=”plain”]
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !zhukun.net [NC]
RewriteCond %{HTTP_REFERER} !youdao.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !twitter.com [NC]
RewriteCond %{HTTP_REFERER} !facebook.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .(png|jpg)$ /no.gif [R,NC,L]
我把.htaccess文件和no.gif文件一起上传到了根目录,注意看最后一行,当指定类型(png或jpg)的图片出现在非上述列表中的网站时,图片会自动替换成no.gif。演示见此。
解释一下上述语句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
2、 RewriteCond %{HTTP_REFERER} !zhukun.net [NC]
设置允许访问的HTTP来源,包括我们的自身站点、Google、Baidu、Bloglines、Feedburner、feedsky等。
3、 RewriteRule .(jpg|png)$ /no.gif [R,NC,L]
定义被盗链时替代的图片,让所有盗链 jpg、png 等图片的网页,显示根目录下的 no.gif 文件。注意:这里必须有一个“/”,而且no.gif件体积越小越好,越小就越节省流量。
4、说明一下其中的 R、NC 和 L
R 就是转向的意思
NC 指的是不区分大小写
L 指明本次转向到此结束,后续的转向不受先前判断语句的影响
特别注意:不建议同时禁止gif|jpg|png这三种图片文件,比如你已经禁止了gif,但是却用了no.gif来替换盗链图片,这样肯定会出问题。如果你想同时禁止这三种类型,可以使用以下方法来解决:
[code lang=”plain”]
RewriteRule .(gif|png|jpg)$ http://farm3.static.flickr.com/2743/4462030670_dc36df0e3d_o.png [R,NC,L]
即用其它服务器上(未设置过防盗链)的图片来替换演示。
本方法已在Godaddy的免费空间上测试成功,再次声明一下,清风小荷塘原创文章,转载请标明来源。
2010.07.16补充,如果你没看懂,不防看看梦游科技的这篇文章。
很不错。。
请问是win+iis7平台的吗?
不错,正好可以用上了!!
我基本不用图片,所以不用考虑盗链,哈哈……
我的那个free space本来就限制外链,怎样才可以搞得可以外链呢? 8)
给你自己要盗链的网页上或CSS中,加上伪装的头部就可以啦,或者自己建一个ASP或PHP的盗链页上去也可以的,请参考下面的说明
http://youa.baidu.com/item/7d38397d1abbbcf150a47755
让楼主的方法重新显示图片代码方法:
http://yhz.cn.nf/pictest.php?url=http://img.zhukun.net/pictures/52.jpg
防盗链后 再想办法盗链 那自己的资源损耗将是被盗者的数倍 在此我认为妨到链最好的办法是加水印 哈哈 别人免费给咱做广告
不是aw本人,但您应该保留其版权吧,看到你的http://www.zhukun.net/archives/3822
您应该知道怎么做,重复,是希望您重视成果。
这个方法不错啊
我也准备写一篇。
收藏了,有用
根据你的这个我又学到一招了!谢谢……
学习了一个。效果不错。谢谢
谢谢啦,使用了。很不错。在IE中效果很好。不过我习惯用360浏览器,在它的右键有一项“复制图片地址”,使用后可以下载原图片。我刚开始接触独立博客,感觉有点怪怪的。谢谢!
非常感谢~试了下,成功了~
学习了。
我设置了怎么不起作用呢??〈〉〈〉
添加上水印最好
可以用,谢谢
Ok
过去的苦,其实并不见得是苦