
所謂盜鏈,就是他人在未經本人你的同意之一,把你網站上面的資源諸如圖片等一些文件的地址直接引用過去的一種行為。(呃,是這樣的,囧)造成的影響就是一傷害了你的感情,因為他們沒和你打招呼;二,傷害了你的服務器的感情,因為盜鏈在無形中增加了你服務器的流量,給服務器造成了負擔,影響你網站的訪問速度。
切入正題,其實圖片防盜鏈的方法有很多,有直接通過網頁程序編寫的,再有就是通過對服務器端的設置。因為本人的主機是Linux主機,裝的是Apache,而Apache下.htaccess文件可是非常的寶貝。大家可能都知道,URL的靜態化就是通過編寫Rewrite規則在這個文件裡來實現的。具體的可以google之。或許以後我也會分享本人的經驗。
繼續回到正題。下面介紹實現此功能的步驟。因為.htaccess文件的影响範圍是其所在的目录及其子目录,所以假想你想你有個圖片文件夾稱呼為images,那麼就請毫不猶豫的把.htaccess文件放置到該目錄下。呃,忘記了您可能還沒建立此文檔,- -.. Win用戶只需右鍵,新建文本文檔,然後存成.htaccess即可,並且去掉後綴.txt,Mac用戶同理打開文本編輯軟件存成此名字的文檔。然後用任何文本編輯軟件打開此.htaccess文件。要寫些什麼呢?
您可以參考以下代碼:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !guaniu.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !qq.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !yodao.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !douban.com [NC]
RewriteCond %{HTTP_REFERER} !xiaonei.com [NC]
RewriteCond %{HTTP_REFERER} !mozilla.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) http://www.guaniu.com/pic/forbidden.jpg [R,NC,L]
然後我簡單的介紹一下,以免一頭霧水。
1.RewriteEngine on 的意思就是開啟偽靜態功能引擎,此句要有,不可省略。
2.RewriteCond %{HTTP_REFERER} !^$ [NC] 防盜鏈原理就是因為http標準協議中有個專門的字段記錄referer,它一來可以追溯上一個入站地址是什麽,二來對於資源文件,可以跟蹤到包含顯示他的網頁地址是什麽。這句話的意思是允許空“HTTP_REFERER”的訪問,即允許用戶在瀏覽器地址欄中直接輸入圖片地址時圖片文件的顯示。
3.RewriteCond %{HTTP_REFERER} !guaniu.com [NC] 允許域名為guaniu.com的網站訪問。其他句子同理。考慮到作為部落格的網站需要被那些feed供應商訪問,所以你可以添加那些那站的允許規則,例如我的htaccess文件裡添加了zhuaxia,feedsky,feedburner.com等。
4.RewriteRule .(jpg|gif|png|bmp|swf|jpeg) http://www.guaniu.com/pic/forbidden.jpg [R,NC,L] 當別人盜鏈你網站的.jpg,.gif,.png,.bmp,.swf,.jpeg文件的時候,自動替換圖片為http://www.guaniu.com/pic/forbidden.jpg。
5.另外說明下R、NC 和 L的意思。
R 就是轉向的意思
NC 指的是不區分大小寫
L 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響
好了。你的設置好了。我的講演也完了。謝謝惠顧。
