首先这种方法适合用 Apache 搭建服务器的用户,如果你使用 IIS 来搭建,这种方法不适用。
什么是图片防盗链和转向?
图片防盗链的作用是防止其他网站盗用你的图片,从而浪费你宝贵的流量。
图片转向则适用于以图片为主的网站。如果在月底之前流量即将耗尽,可以利用图片转向功能,在不修改网页的前提下,将图片下载请求转向到其他空间(例如试用主机),实现临时过渡。
接下来我们将具体讲解如何设置图片防盗链和转向。假设你的图片都存放在 img 目录下,那么需要在该目录下创建一个名为 .htaccess 的文件,并添加以下内容:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !adminbuy.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http:\\\\/\\\\/www.adminbuy.cn\\\\/image\\\\/$1 [L]
以下是规则的详细解释:
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !adminbuy.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
这部分规则用于判断是否为盗链行为。如果访问图片的请求既不是直接输入网址,也不是来自 adminbuy.cn、google.com 或 baidu.com,则判定为盗链,进而执行以下转向规则:
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
这条规则的意思是:所有盗链 img 目录下的 jpg、gif、png、bmp、swf 和 jpeg 文件的网页,都会被替换为 image 目录下的 replace.gif 图片。需要注意的是,替换显示的图片不要放在设置防盗链的 img 目录下。
如果根据上述规则判定图片请求并非盗链,则会执行以下转向规则:
RewriteRule ^(.*)$ http:\\\\/\\\\/www.adminbuy.cn\\\\/image\\\\/$1 [L]
这条规则表示对 img 目录下的所有请求都将转向目标服务器。例如,某个图片原来的 URL 是 https://www.0do.cn/img/girl.jpg ,现在会转到 https://ltimg.0do.cn/jc/ 。当然,你需要先将原服务器 img 目录下的文件全部复制到临时服务器的 image 目录下,才能确保转向真正可用。
通过以上方法,你可以有效地保护自己的资源,同时在流量不足时灵活应对。