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]