首先这种方法适合使用 Apache 搭建服务器的用户,如果你使用的是 IIS,则此方法不适用。空格标签 />

先解释一下图片防盗链和转向:空格标签 />

图片防盗链有什么用?空格标签 />防止其他网站盗用你的图片,从而浪费你宝贵的流量。空格标签 />

图片转向有什么用?空格标签 />如果你的网站以图片为主,某天发现月底还没到但流量却快用光了,那么就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其他空间(比如试用主机),实现临时过渡。空格标签 />

下面开始讲解。例如,你的图片都存放在 img 目录下,那么可以在该目录下放置一个名为 .htaccess 的文件,内容如下:空格标签 />


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !dedemao.com [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.dedemao.com\\\\/image\\\\/$1 [L]

大概解释如下:空格标签 />

RewriteCond %{HTTP_REFERER} !^$ [NC]空格标签 />RewriteCond %{HTTP_REFERER} !dedemao.com [NC]空格标签 />RewriteCond %{HTTP_REFERER} !google.com [NC]空格标签 />RewriteCond %{HTTP_REFERER} !baidu.com [NC]空格标签 />

这部分是判断是否发生盗链。如果以上条件都成立(即访问图片的请求既不是直接输入网址,也不是来自 dedemao.com,也不是来自 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://www.0do.cn/image/girl.jpg。当然,你需要先把原服务器 img 目录下的文件全部拷贝到临时服务器的 image 目录下,这样转向才会真正可用。空格标签 />