WordPress图片防盗链的两种方法

随着各种图床逐渐都不能正常使用了,严重浪漫开始考虑把图片全部上传到自己的服务器上。
随之而来的问题是,图片防盗链。毕竟我的主机的流量一个月给的并不多。
今天把我的博客的图片防盗链弄好了,如果外站盗链本站的图片,效果如下图所示。

防盗链图片

我总结了图片防盗链的两种方法,任选一种即可,我用的是第二种。


【方法一】
将该代码替换WP默认的.HTACCESS,如果没有该文件,请执行以下操作:

1、将代码复制到记事本/notepad++
2、另存为.htaccess ,注意前面有个 点,字母是小写。
3、上传到WP根目录下。
4、设置权限为444,防止被修改。

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteBase /wp-content/uploads/
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !本站.com [NC]
RewriteCond %{HTTP_REFERER} !google.co.id [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !bing.com [NC]
RewriteCond %{HTTP_REFERER} !yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !yahoo.com.cn [NC]
RewriteCond %{HTTP_REFERER} !yahoo.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !google.de [NC]
RewriteCond %{HTTP_REFERER} !google.co.jp [NC]
RewriteCond %{HTTP_REFERER} !google.nl [NC]
RewriteCond %{HTTP_REFERER} !google.com.au [NC]
RewriteCond %{HTTP_REFERER} !google.com.sa [NC]
RewriteCond %{HTTP_REFERER} !google.co.uk [NC]
RewriteCond %{HTTP_REFERER} !google.fr [NC]
RewriteCond %{HTTP_REFERER} !google.com.br [NC]
RewriteCond %{HTTP_REFERER} !google.com.mx [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.eg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !google.se [NC]
RewriteCond %{HTTP_REFERER} !google.fi [NC]
RewriteCond %{HTTP_REFERER} !google.com.ph [NC]
RewriteCond %{HTTP_REFERER} !google.ru [NC]
RewriteCond %{HTTP_REFERER} !google.co.kr [NC]
RewriteCond %{HTTP_REFERER} !google.es [NC]
RewriteCond %{HTTP_REFERER} !pch.com [NC]
RewriteCond %{HTTP_REFERER} !google.be [NC]
RewriteCond %{HTTP_REFERER} !google.ro [NC]
RewriteCond %{HTTP_REFERER} !google.com.my [NC]
RewriteCond %{HTTP_REFERER} !google.co.in [NC]
RewriteCond %{HTTP_REFERER} !google.pl [NC]
RewriteCond %{HTTP_REFERER} !google.com.tr [NC]
RewriteCond %{HTTP_REFERER} !google.co.th [NC]
RewriteCond %{HTTP_REFERER} !google.ch [NC]
RewriteCond %{HTTP_REFERER} !google.co.nz [NC]
RewriteCond %{HTTP_REFERER} !showmelinks.eu [NC]
RewriteCond %{HTTP_REFERER} !google.dk [NC]
RewriteCond %{HTTP_REFERER} !google.com.pk [NC]
RewriteCond %{HTTP_REFERER} !google.com.ar [NC]
RewriteRule .*.(gif|jpg|png|rar)$ http://本站.com/unavailable.png [L]

# END WordPress

补充:
以上的“本站.com”修改为自己的域名。
unavailable.png 则是别人盗链你的图片时显示的一张图片,可以是一个红叉,提示“请勿盗链”。
另外,修改.htaccess 后要过一会才会生效。


【方法二】

1、首先我们先得准备一个防盗链的图片,我们暂且把图片的名字命名为 protect.png 吧,图片的内容随便你怎么弄,不过图片一定要小,几k或者十几k左右最好。
2、把图片上传到你博客的根目录。
3、这一步是关键,在放置图片的 /wp-content/uploads/ 文件夹下放置一个.htaccess文件,在.htaccess文件内加入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
RewriteEngine on
 
RewriteCond %{HTTP_REFERER} !^$ [NC]
 
RewriteCond %{HTTP_REFERER} !本站.com [NC]
 
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
 
RewriteCond %{HTTP_REFERER} !google.com [NC]
 
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
 
RewriteRule .*.(jpg|gif|png|bmp|jpeg|swf)$ /protect.png [R,NC,L]

这些语句表示只允许自己的博客 本站.com 显示原图,其他一律显示刚才做的那个protect.png 。你可以还加上一些例外的网站,不过要按照 RewriteCond %{HTTP_REFERER} !本站.com [NC] 的格式,把本站.com改为你想要例外的网站的网址即可。

特别注意:百度、谷歌之类的搜索引擎,他们是直接盗链的,所以我们应该把这两个加入允许的行列,可别忘了图片搜索也会给你带来意想不到的流量。

新建一个记事本,粘贴以上内容,另存为 .htaccess 即可。



506 次阅读 | 发表评论 | Trackback
2017年5月10日 | 归档于 WordPress
标签:
  1. 2017年5月15日 10:00 | #1

    受教了!呵呵!

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
:lol: :( 8-O :oops: 8) :?: :!: :evil: more »