用HTACCESS为你的博客设置图片防盗链

自打博客开始建立起就常遇上一些无耻的小偷,盗取我的文章资源并且不给一个Backlink,还直接使用本服务器上的图片,浪费我宝贵的流量,极大地影响了我在Google等搜索引擎中的形象,介于此,终于痛下决心做一个图片防盗链,坚决抵制各无耻小偷。

设置图片防盗链,首先是保护了你的文章的版权,你的文章可能被放在别的网站上,并且没有标明作者,现在只要对图片进行了防盗处理,读者在浏览文章时,图片无法正常显示,他就自然而然到你的网站上浏览。(当然前提是你的这篇文章中有图片)。

再则是节省了服务器资源。现在很多博友都用国外的服务器,不像国内的无限流量(多数也是骗人的),流量极为宝贵。使用防盗链,原本图片可能有200KB(特别是一些把大的图片放在本地博客上的朋友),现在放上一个提示出错的图片只要2KB就够了 :)

鉴于此,无论如何也要设计防盗链来保护你的劳动成果!

好了,现在开始讲讲如何设置防盗链吧。

第一种方法:服务器设置

有些主机使用cPanel的管理后台,请登陆cPanel-》Security-》Hotlink Protection-》Enable(启用)。在Urls to Allow Access处填写允许的网站来源,每行填写一个;Extensions to allow处填写需要保护的后缀名,使用半角逗号隔开,如 jpg,gif,png。详情请浏览无边无际的文章。

第二种方法:.HTACCESS文件中设置

Lamp(Linux+Apache+MySQL+PHP)用户最大的好处在于HTACCESS文件的设置,利用HTACCESS文件,可以最大程度自己定义需要的效果,如这个防盗链。

如果在本地创建 .htaccess 文件可能会遇到无法创建的麻烦,请从网上下载一个 .htaccess 文件或本地创建好文件后使用FTP等软件重命名即可。

  1. # 开启Rewrite模块
  2. RewriteEngine On
  3. # 定义要保护的文件夹,建议只要保护上传文件夹(/wp-content/uploads/)就可以,主题文件夹之类的就算了
  4. RewriteBase /wp-content/uploads/
  5.  
  6.  
  7. #允许的URL来源
  8.  
  9. #允许空的来源,因为用户可能手动输入图片网址
  10. RewriteCond %{HTTP_REFERER} !^$ [NC]
  11. #允许自己的网站访问啦
  12. RewriteCond %{HTTP_REFERER} !photozero.net [NC]
  13. #允许几个常用的在线阅读器的访问
  14. RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
  15. RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
  16. RewriteCond %{HTTP_REFERER} !google.com [NC]
  17. RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
  18. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
  19.  
  20. #括号中的是要保护的文件拓展名,这里只保护了 gif,jpg,png,再加上出错时的图片地址 unavailable.png
  21. RewriteRule .*/.(gif|jpg|png)$ unavailable.png [L]

把以上代码放到.htaccess文件中(下载.htaccess 文件参考),将.htaccess文件上传到/wp-content/uploads/目录,再自己做一张 unavailable.png 图片,同样放到 /wp-content/uploads/ 下即可。

再说明一下,这里的出错后的图片是存放在本地的unavailable.png,这样还有个问题,由于这个效果是不转向直接读取unavailable.png文件后发送到客户端,如果图片被盗链后实际上可能会调用很多次,比如
http://photozero.net/wp-content/uploads/2008/11/123.jpg
http://photozero.net/wp-content/uploads/2008/11/456.jpg
http://photozero.net/wp-content/uploads/2008/11/789.jpg

这样做还是需要重新下载N次unavailable.png图片(尽管每张图片才2KB)。

另外一种方法是出错后转跳到指定的一张图片,如 http://example.com/unavailable.png ,出错后统一转跳到这里,实际上浏览器会缓存这张图片,也就是说只要下载1次就够了,这样做更节约流量!

  1. #把上面的RewriteRule ... 这一句替换成
  2. RewriteRule .*/.(gif|jpg|png)$ http://example.com/unavailable.png [R,NC,L]

这种效果在遇到盗链时,用301/302转向到http://example.com/unavailable.png而不是上面的直接读取unavailable.png文件。在使用这种方法时要注意,不要把http://example.com/unavailable.png放在上面的防盗链保护的范围之内!否则会引起循环重定向,重则导致浏览器崩溃!(建议把图片放在根目录或者放在网络相册之类的)

OK,说完了,自己要不要试一试?效果参见本站 :)下载.htaccess 文件参考,本站错误图片显示


http://photozero.net/wp-content/uploads/unavailable.png

*本人对HTACCESS的了解属于外行,如果错误,欢迎指正,也望高手莫笑。
===================================================

haccess在线编辑工具
中文化界面(支持十种语言,包括正体中文),功能比较完善:
支持:

  1. 是否显示文章列表(是否显示网站索引目录)
  2. 是否启用密码保护(可对单个目录启用密码保护)
  3. 各种错误页面设置(400     Bad Request401     Auth Req’d402     Payment Req’d403     Forbidden404     Not Found405     Method Not Allowed406     Not Acceptable407     Proxy Auth Repid408     Request Time Out409     Conficting Request410     Gone411     Content Len Req’d412     Precondition Failed413     Entity Too Long414     URI Too Long500     Int, Server Error501     Not Implemented502     Bad Gateway503     Service Unavailable504     Gateway Timeout505     HTTP Ver Not Sup…)
  4. 预设置页面(设置任意页面为主页)
  5. www转向设置(将www.重定向)
  6. 301 302转址(用来重定向)
  7. 存取限制(用来防盗链)
    现在 就去看看:http://www.htaccesseditor.com/sc.shtml

你可能感兴趣的:(PHP,.htaccess,服务器,payment,浏览器,搜索引擎,service)