防止外链盗取本地文件

发布于 2022-02-18  248 次阅读


本文最后更新于2022年5月1日,已超过 30 天没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

盗链是指其它站点使用了你自己网站的图片音乐等资源,然后链接又没有更换,直接显示的就是你站点的图片,这在转载文章时最常见,比如转载时将 整篇文章都转载过去,包括文章里面的图片,有些人就懒得把图片再重新上传一下,直接就使用源地址的图片了,这就导致浪费了源网站的流量与带宽,现在比较大 型的站点都启用了防盗链功能,比如QQ空间,新浪博客,这些站点的图片在其它站点直接显示的时候会出现,不允许显示的提示。

对于我们小博客主来说,流量和宽带很重要,实在承受不住流量的浪费,哪么又应该如何防止盗链呢,下面博主从网上找来的一段 wp 防盗链的代码,当然也适用于其它程序,代码如下:

# 防盗链  
<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /  
RewriteRule ^index.php$ – [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]  
RewriteBase /wp-content/uploads/  
RewriteCond %{HTTP_REFERER} !^$ [NC]  
RewriteCond %{HTTP_REFERER} !inlojv.com [NC]  
RewriteCond %{HTTP_REFERER} !google.com [NC]  
RewriteCond %{HTTP_REFERER} !baidu.com [NC]  
RewriteCond %{HTTP_REFERER} !qq.com [NC]  
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]  
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]  
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]  
RewriteCond %{HTTP_REFERER} !yahoo.com [NC]  
RewriteRule .*.(gif|jpg|jpeg|png|bmp|zip|rar|7z|swf|mp3)$ https://cbbkk.com/wp-content/nolink.jpg [NC,L]  
</IfModule>  

把此段代码放入到根目录下的 .htaccess 中就可以了,其中 https://cbbkk.com/wp-content/nolink.jpg 为防盗链图片提示。

下面解释一下上面添加代码的作用意思:

RewriteBase /wp-content/uploads/:设置WordPress附件上传目录禁止外链,如果你已经在后台更改了默认上传目录的,这里则相应修改。

RewriteCond %{HTTP_REFERER} !^$ [NC]:允许用户在浏览器中单独打开附件链接。

RewriteCond %{HTTP_REFERER} !inlojv.com [NC]:允许特定网站可以显示附件内容,一般为收录优化和方便订阅用户,建议加上Google、百度、Feedsky之类的允许显示的网站。

RewriteRule .*.(gif|jpg|jpeg|png|bmp|zip|rar|7z|swf|mp3)$ https://cbbkk.com/wp-content/nolink.jpg [NC,L]:禁止外链的文件类型,如果盗链了则显示盗链提示图片。