用.htaccess實現圖片防盜鏈。

流量有限,圖片外鏈禁止。

所謂盜鏈,就是他人在未經本人你的同意之一,把你網站上面的資源諸如圖片等一些文件的地址直接引用過去的一種行為。(呃,是這樣的,囧)造成的影響就是一傷害了你的感情,因為他們沒和你打招呼;二,傷害了你的服務器的感情,因為盜鏈在無形中增加了你服務器的流量,給服務器造成了負擔,影響你網站的訪問速度。

切入正題,其實圖片防盜鏈的方法有很多,有直接通過網頁程序編寫的,再有就是通過對服務器端的設置。因為本人的主機是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 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響

好了。你的設置好了。我的講演也完了。謝謝惠顧。

15 Responses to 用.htaccess實現圖片防盜鏈。

  1. 牙。 says:

    = =
    潛水那麼久。。。
    難得殺個花 😀

  2. NickyYe says:

    轉成簡體看舒服多了
    xd

  3. Leeiio says:

    @NickyYe:哈,那是,我們大陸從小教授的是簡體漢字。

  4. Leeiio says:

    @牙。:呃,你說你那可憐的頭像咩?

  5. xiaorsz says:

    已經把圖片放別的服務網站了!
    不過現在用的圖片好少了,圖片多了慢!!
    不過博主的方法的確不錯!! 🙄

  6. Leeiio says:

    @xiaorsz:有好的穩定的圖床推薦么?其實我的空間是無限量大小的。。

  7. xiaorsz says:

    @Leeiio:大家一般用google的吧!感覺還可以,其它的我就不太清楚了,因為自己要存的圖片也不是很多!!
    你無限量的?厲害,那速度還可以的話就放自己伺服器上哈! 😡

  8. Leeiio says:

    @xiaorsz:國外主機,實在是擔心速度問題啊,最近flickr在我這訪問很慢,就把blog拖得死慢死慢。

  9. 牙。 says:

    = =殺個花的意思呢,就是沙發。。。
    我們果然有代溝啊~~

  10. 牙。 says:

    = =叔叔你沒有ru溝。。。。

  11. 博譯論 says:

    果然好看
    評論

  12. 藍冰 says:

    我只知道用,不知道為何如此·!~

  13. wEixiNu says:

    😛
    現在的圖片外鏈網站都有放外鏈功能,我用的是有照片。

Leave a Reply

Your email address will not be published. Required fields are marked *