Apache的.htaccess可以实现很多功能,如密码保护、禁止显示目录列表、阻止/允许特定的IP地址、实现网址的301 重定向等等。本文就来说说使用Apache的.htaccess如何防盗链。
当然防盗链可以用程序解决,如PHP:
- $referer = $_SERVER['HTTP_REFERER'];
- $selfurl = $_SERVER['HTTP_HOST'];
- if(false == strpos($referer,$selfurl)){
- echo 'phpddt.com防止非法盗链';
- exit(1);
- }
使用Apache的.htaccess防盗链:
- RewriteEngine On
- RewriteCond %{HTTP_REFERER} !^$ [NC]
- RewriteCond %{HTTP_REFERER} !phpddt.com [NC]
- RewriteCond %{HTTP_REFERER} !google.com [NC]
- RewriteCond %{HTTP_REFERER} !baidu.com.com [NC]
- RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
- RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
- RewriteRule .*.(rar|zip)$ http://www.phpddt.com/ [R,NC,L]
.htaccess文件将影响其所在的目录及其子目录。你可以将其放在根目录或项目的子目录
上面这段代码也是很容易理解的:
RewriteCond %{HTTP_REFERER} !^$ [NC]
允许空的来源,即用户浏览器手动属于则允许访问文件。
RewriteCond %{HTTP_REFERER} !phpddt.com [NC]
允许站点自身访问,同理,后面还要允许百度,谷歌,和一些订阅源访问。
RewriteRule .*.(rar|zip)$ http://www.phpddt.com/ [R,NC,L]
这里可以设置防止盗链的类型,如果盗链可以跳转到网站首页,本站没有做图片防盗链,如果你做图片防盗链可以设置被盗链的替代图片:
RewriteRule .*.(gif|jpg|png)$ http://phpddt.com/logo.png [R,NC,L]