Apache -- 利用.htaccess防盜鏈

在Apache服務器的前提下利用.htaccess文件來防盜鏈的原理是經過檢查圖片或文件請求頭信息中的Referer屬性(也就是請求的來源),判斷它是否屬於你所規定的合法的請求來源,從而實現讓合法來源可以得到請求的圖片或文件、不合法的請求被轉向到另外一個指定的連接(一般是盜鏈提示的圖片,而且儘可能控制該文件大小從而下降流量損耗)。html

  • 具體的作法是在.htacess文件中添加相似如下幾行的代碼
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !purplesecond.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .*\.(jpg|gif|png|jpeg)$ http://www.oursmemory.com/favicon.ico [R,NC,L]

 

  • 簡單地逐條解釋一下上面幾行代碼

   1.  開啓重寫功能瀏覽器

RewriteEngine on

 

  2. 下面這句代碼是使當在瀏覽器地址欄中直接輸入圖片或文件的地址時,訪問者可以得到請求的文件。通常來講,咱們是容許這麼作的,但若是你非要禁止訪問者直接輸入網址訪問圖片或文件,你能夠不加這條,但這可能致使訪問者在經過代理訪問時即便在站內發出圖片或文件請求時,也會發生沒法請求的問題,具體狀況我也不清楚,你們能夠去查看相關資料。服務器

RewriteCond %{HTTP_REFERER} !^$ [NC]

 

  3.  這三條代碼的做用是讓三條中說起的網站在請求本站的圖片或文件時,不會受到後述的重寫設置,即這三個網站屬於白名單。網站

RewriteCond %{HTTP_REFERER} !purplesecond.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]

 

  4.  這條表示對符合上述條件的HTTP_REFERER應用本條重寫規則,讓全部未在白名單以內的網站在訪問本網站的jpg,gif,png,jpeg文件時,都會被返回http://www.oursmemory.com/favicon.ico 所表明的文件。ui

RewriteRule .*\.(jpg|gif|png|jpeg)$ http://www.oursmemory.com/favicon.ico [R,NC,L]

 

5.補充說明一下:R,NC,L的含義google

R:轉向spa

NC:不區分大小寫代理

L:本次轉向到此結束,後續的轉向不受先前判斷語句的影響code

 

原文連接:簡單技巧之Apache下利用.htaccess防盜鏈小結htm

相關文章
相關標籤/搜索