【落伍首发】

昨天晚上看见有人发帖说被盗链害惨了,而且还是那种php?url=http://形式盗链

鉴于此,发个本人的方法,让你的站彻彻底底防盗链。

效果:只有在设置的允许的网站上链接才正确显示,其他不管是直接输入到地址栏或者从其他网站点击过去都视为盗链。
演示:http://www.baobaocool.com/images/BaoBaoCool.gif
上面这是个图片链接,真实存在的链接,但是你不管从这里点击过去还是直接到地址栏输入都直接跳转了,但是你到http://www.baobaocool.com/links.html这里看看,那个宝宝酷的logo,它却可以正常显示。

前提
如果你是windows系统,必须安装isapi_rewrite(一般支持伪静态的机子都装了这个);如果你是Linux/Unix/Freebsd等系统,必须打开mod_rewrite(一般这些系统都打开了这个模块的)。

此方法适用于自己的主机或者虚拟主机。

windows系统看这里
新建一个文本文件,重命名为httpd.ini(已经安装有这个文件跳过此步骤)。
打开httpd.ini,添加如下代码

[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#已配置了伪静态的可以删除上面三行代码
#防盗链设置
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://(?:你的域名.com|(.*).你的域名.com|baidu.com|(.*).baidu.com|google.com|(.*).google.com)).*
RewriteRule .*.(?:jpg|jpeg|gif|png|bmp|rar|zip|exe) /address1.gif [I,O,N]

解释一下上面的防盗链部分代码
第一行:不管它
第二行:设置允许的网站,也就是允许哪些网站来链接你的文件,上面例子是允许 你自己的网站和baidu.com, *.baidu.com, google.com, *.google.com来链接。请修改你自己的域名,你也可以去掉baidu和google的链接,你也可以添加其他的网站。
第三行:设置文件类型和盗链的输出图片。看看那些后缀你应该就知道怎么该了。例子中的/address1.gif必须放置域名的在根目录下。

然后把httpd.ini放到网站域名根目录

Linux/Unix/Freebsd等系统看这里
新建一个文本文件(已经安装有配置过.htaccess文件的跳过此步骤)。
打开文件,添以下代码(已经安装有配置过.htaccess文件的只需添加第5到第11行代码)。


RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_REFERER} !^http://baobaocool.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://baobaocool.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.baobaocool.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.baobaocool.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.mcflycn.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.mcflycn.com$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ /address1.gif [R,NC]

解释一下上面的代码
第二行:打开重写引擎
第三行:设置目录
第五行到第十行:这个不用解释了吧——允许的网站。自己看看改改就行了。
第十一:设置文件类型和盗链的输出图片。看看那些后缀你应该就知道怎么该了。例子中的/address1.gif必须放置域名的在根目录下。也可以将/address1.gif改为一个网址,像我上面给出的演示一样,我就是直接用的网址http://www.xxx.com/

然后把这个文本文件放到网站域名根目录,重命名为.htaccess

PS:不足之处,对于Linux/Unix/Freebsd等系统按我的这个设置,好像不能正确输出/address1.gif。解决办法,去掉上面的|bmp(我想大部分网站都不用bmp这种图片格式吧),然后把做一个bmp格式address1文件。把上面的address1.gif改成address1.bmp

好了全部写完了,版主来s精