如何设置WordPress图片防盗链方法 推荐

2019-02-19 18:06:56王旭
如果您的博客有很多很多图片,空间又有流量限制,那么防止别人盗取自己的图片链接应该说是势在必行了,因为在国内,博客内容互相复制的现象相当的普遍,大家都非常珍惜自己的那一点点空间,直接复制图片(复制是带链接的哦!)就象一顿家常便饭一样,已经司空见惯了。图片被盗链不仅会让你的空间流量很快消耗掉,也会影响网站页面加载速度!

网上有许多设置图片防盗链方法,这里提供两种,一是利用.htaccess文件进行一些简单的设置便能够轻易防止别人盗取自己网站原创图片的链接;二是使用插件WP Hotlink Protection。

一.修改.htaccess文件

怎么实现?首先创建一张小图片,以作警示之用。你可以在此图片上打上”Please do not hotlink from my server“(大概意思是:不要盗取我的图片链接哦!)这样的警语。然后将图片上传到自己的空间服务器,要记住图片存放的路径。

接着打开WordPress网站根目录下的.htaccess文件,里面的原始内容应该是类似这样的:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

添加防盗链规则后的代码变成如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_REFERER} !^http://(www.)?sayblog.me(/)?.*___FCKpd___1nbsp;    [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?google.com(/)?.*___FCKpd___1nbsp;    [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?baidu.com(/)?.*___FCKpd___1nbsp;    [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?image.baidu.com(/)?.*___FCKpd___1nbsp;    [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?yahoo.com(/)?.*___FCKpd___1nbsp;    [NC]
RewriteRule .*.(gif|jpg|jpeg|bmp|png|swf)$ http://www.sayblog.me/images/defaultimage.gif  [R,NC,L] 

</IfModule> # END WordPress 

绿色部份就是自己添加的规则,网址要根据需要更改,它们是属于允许使用图片的网址。

值得注意的一点是,一级域名和二级域名是有区别的,如上面的网址,我们添加了baidu.com,也应该添加image.baidu.com,这样image.baidu.com才不会搜到防盗链的那张图片。

添加的这部分代码主要作用为判断是不是盗链,如果访问图片的请求既不是来自直接输入的网址,也不是来自sayblog.me本身的,也不是来自列表中的网站,则执行下面的转向:

RewriteRule .*.(gif|jpg|jpeg|bmp|png)$ http://www.sayblog.me/images/defaultimage.gif  [R,NC,L]