如何使用Apache的.htaccess防盗链

Apache的.htaccess可以实现很多功能,如密码保护、禁止显示目录列表、阻止/允许特定的IP地址、实现网址的301 重定向等等。

本文就来说说使用Apache的.htaccess如何防盗链。

当然防盗链可以用程序解决,如PHP:

$referer = $_SERVER['HTTP_REFERER'];
$selfurl = $_SERVER['HTTP_HOST'];
if(false == strpos($referer,$selfurl)){
echo 'itpwd.com防止非法盗链';
exit(1);
}


使用Apache的.htaccess防盗链:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !itpwd.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !bing.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !sogou.com [NC]
RewriteCond %{HTTP_REFERER} !haosou.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !so.com [NC]
RewriteCond %{HTTP_REFERER} !sm.cn [NC]
RewriteRule .*\.(gif|jpg|png)$ https://www.itpwd.com/nolink.jpg [R,NC,L]
</IfModule>


.htaccess文件将影响其所在的目录及其子目录

上面这段代码也是很容易理解的:

RewriteCond %{HTTP_REFERER} !^$ [NC]

允许空的来源,即用户浏览器手动属于则允许访问文件。

RewriteCond %{HTTP_REFERER} !itpwd.com [NC]

允许站点自身访问,同理,后面还要允许百度,谷歌…访问。

RewriteRule .*\.(rar|zip)$ https://www.itpwd.com/ [R,NC,L] 

这里可以设置防止盗链的类型,如果盗链可以跳转到网站首页

RewriteRule .*\.(gif|jpg|png)$ https://www.itpwd.com/nolink.jpg [R,NC,L]

做图片防盗链,如果你做图片防盗链可以设置被盗链的替代图片


相关推荐