现在的位置: 首页 > WP 专题 > 正文

利用.htaccess实现WordPress图片及附件防盗链

2014年05月15日 WP 专题 ⁄ 共 3170字 ⁄ 字号 暂无评论 ⁄ 阅读 738 次

随着WordPress文章的不断增加,相应的图片及附件数量也会增加。如果空间流量很珍贵,就要考虑到wordPress图片及附件防盗链的问题了。因为当别人转贴你的文章时会将图片及附件一并copy到他的网站,而图片及附件的链接地址却是你的网站,这样就会使你的虚拟主机空间流量大增。那么如何解决这个问题呢?下面骤雨打新荷就给大家说说利用.htaccess实现WordPress图片及附件防盗链的方法:

首先只要你的虚拟主机空间支持mod_rewrite(大部分Linux主机和Unix主机都支持重写.htaccess),我们就可以在本地新建一个名为.htaccess的文本文档,然后将防盗链的代码填写好,保存后传到你安装WorPress的网站根目录或你想要防盗链的文件夹(如uploads)下,这样就可以实现图片及附件的防盗链了。要说明的是有些虚拟主机可能隔天才会生效,配置后请耐心等待一段时间。

现在以本站的.htaccess为例具体说明一下防盗链代码的写法:

  1. RewriteEngine On
  2. #Anti-Leech For Image
  3. RewriteCond %{REQUEST_URI} !^/outlink
  4. RewriteCond %{REQUEST_FILENAME} \.(gif|jpg|jpeg|png|bmp)$ [NC]
  5. RewriteCond %{HTTP_REFERER} !^$ [NC]
  6. RewriteCond %{HTTP_REFERER} !uuxn\.com [NC]
  7. RewriteCond %{HTTP_REFERER} !www\.uuxn\.com [NC]
  8. RewriteCond %{HTTP_REFERER} !google\.com [NC]
  9. RewriteCond %{HTTP_REFERER} !google\.com\.hk [NC]
  10. RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
  11. RewriteCond %{HTTP_REFERER} !feedsky\.com [NC]
  12. RewriteCond %{HTTP_REFERER} !yahoo\.com [NC]
  13. RewriteCond %{HTTP_REFERER} !feedburner\.com [NC]
  14. RewriteCond %{HTTP_REFERER} !bloglines\.com [NC]
  15. RewriteCond %{HTTP_REFERER} !xianguo\.com [NC]
  16. RewriteCond %{HTTP_REFERER} !zhuaxia\.com [NC]
  17. RewriteCond %{HTTP_REFERER} !soso\.com [NC]
  18. RewriteCond %{HTTP_REFERER} !youdao\.com [NC]
  19. RewriteCond %{HTTP_REFERER} !bing\.com [NC]
  20. RewriteCond %{HTTP_REFERER} !sogou\.com [NC]
  21. RewriteCond %{HTTP_REFERER} !technorati\.com [NC]
  22. RewriteCond %{HTTP_REFERER} !pingomatic\.com [NC]
  23. RewriteCond %{HTTP_REFERER} !yahoo\.cn [NC]
  24. RewriteCond %{HTTP_REFERER} !iask\.com [NC]
  25. RewriteRule (.*) http://icesea.free.fr/banner.gif [L,NC,R]
  26. #Anti-Leech For File
  27. RewriteCond %{REQUEST_URI} !^/outlink
  28. RewriteCond %{REQUEST_FILENAME} \.(rar|swf|flv|zip|exe|7z)$ [NC]
  29. #Anti-Leech For Right Save As
  30. RewriteCond %{HTTP_REFERER} ^$ [NC]
  31. RewriteCond %{HTTP_REFERER} !uuxn\.com [NC]
  32. RewriteCond %{HTTP_REFERER} !www\.uuxn\.com [NC]
  33. RewriteRule (.*) http://icesea.free.fr/banner.gif [L,NC,R]
  34. # BEGIN WordPress
  35. RewriteEngine On
  36. RewriteBase /
  37. RewriteCond %{REQUEST_FILENAME} !-f
  38. RewriteCond %{REQUEST_FILENAME} !-d
  39. RewriteRule . /index.php [L]

以上是本站.htaccess的具体设置。其中图片和附件的防盗链被分开设置,这样可以只让搜索引擎抓取图片,因为图片被收录(如google和baidu的图片搜索)能给你的WordPress带来一定的访问量,而附件被收录,只会增加空间的下载流量。

在.htaccess代码中

  1. RewriteCond%{HTTP_REFERER}!^$

意为是否允许用户在浏览器中直接输入图片或附件地址时显示图片或下载附件。此项可选,如果不允许可以删除,通常建议允许。

  1. RewriteCond %{HTTP_REFERER} !uuxn\.com [NC]
  2. RewriteCond %{HTTP_REFERER} !google\.com [NC]
  3. RewriteCond %{HTTP_REFERER} !google\.com\.hk [NC]
  4. RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
  5. RewriteCond %{HTTP_REFERER} !feedsky\.com [NC]
  6. ……

这段代码是添加允许链接的网站名称,如你自己的网站,谷歌百度等主要搜索引挚及FEEDSKY等RSS用户订阅网站。可根椐自己的需要添加,别忘了把uuxn.com换成你自己的域名。

  1. RewriteCond %{REQUEST_FILENAME} \.(gif|jpg|jpeg|png|bmp)$ [NC]
  2. RewriteCond %{REQUEST_FILENAME} \.(rar|swf|flv|zip|exe|7z)$ [NC]

这两行代码分别是防止盗链的图片及附件的文件格式,可自行设定。

  1. RewriteRule (.*) http://icesea.free.fr/banner.gif [L,NC,R]

上面这行是转向图片地址,如果盗链的图片或附件的文件名后缀是你上面设定的文件格式,则自动转向此图片(通常我们将此图片制作成警告图片或自己的WordPress宣传图片),如本站设定的是宣传图片:

实际上只要你的空间支持.htaccess,都可以利用这段代码进行防盗链设置。要注意的是,转向图片不要放在你的空间下,因为你已经使用了.htaccess防盗链,图片别人无法看到。当然你也可以设为转向到你的WordPress主页或其他html页面。如果仅仅是某个目录下的图片或附件防盗链,就可以转向到你域名其他目录下的图片。总之,大家可以集思广议,设置一个属于自己需要的.htaccess防盗链属性。

注:1、如果你使用cpanel主机,可以参考本站另一篇文章“cpanel主机防盗链的设置方法

2、使用 Hotlink Protection 插件,也可以实现防盗链,并且不会影响FEED的输出。但这款插件实际上也是通过修改 .htaccess 文件来实现防盗链。

给我留言

留言无头像?


×