设置 .htaccess 禁止图片盗链
下面即为博客学堂禁止图片盗链的 .htaccess 设置部分:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(allow1|allow2)
RewriteRule ^.*$ - [L]
首先,设置允许可“盗链”即外部网站可以使用的文件所处目录,上面我们设置了两个目录,分别为allow1与allow2,当然,如果您只有一个目录的话,可以将其改为:
RewriteCond %{REQUEST_URI} ^/allow1
接下来判断是否为图片文件:
RewriteCond %{REQUEST_FILENAME} \.(gif|jpeg|png)$ [NC]
您也可以根据自己的需要设置更多的文件类型。
RewriteCond %{HTTP_REFERER} !^$
上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
RewriteCond %{HTTP_REFERER} !blogsdiy\.org [NC]
RewriteCond %{HTTP_REFERER} !google\.com [NC]
RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines\.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner\.com [NC]
设置允许访问的HTTP来源,包括博客学堂自身、Google、Baidu、Bloglines、Feedburner等。
RewriteRule (.*) /allow1/leech.gif [R,NC,L]
将不满足上述条件的访问重定向至leech.gif。您可能已经注意到,leech.gif位于允许“盗链”的目录allow1下,这一点很重要,不然,您的警告信息图片将无法在对方网站上显示。
如此,即实现了我们预先设定的防止图片盗链目标。
其他类型文件的防盗链设定
如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链,可以同样采取上述策略,比如说,对Flash文件,可用类似如下的设置:
RewriteCond %{REQUEST_URI} ^/allow1
RewriteRule ^.*$ - [L]RewriteBase /
RewriteCond %{REQUEST_FILENAME} \.swf$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !blogsdiy\.org [NC]
(……其他允许访问来源)
RewriteRule (.*) /allow1/leech.swf [R,NC,L]
当然,需要事先创建一个声明版权信息的flash文件“leech.swf”。其他诸如防止mp3文件、压缩文件(zip或rar)盗链的设置与此类似,不再赘述。
使用方法:将上述代码保存为dao4.php