Hotlink Protection的原理是利用Apache的RewriteCond功能,在得到文件請求時檢測請求REFERER,只有是本網站的URL才放行。這個原理很適合自制頭像的保護,因為頭像只應該在本網站內部使用。
下面以discuz為例,說一下使用方法:烈……火……網……防……盜……鏈
Discuz的內置頭像保存在/forum/images/avatars/目錄下,我只想保護這些內置頭像,用戶上傳的頭像和其他圖片不去限制別人引用,因此RewriteCond代碼放置在此目錄即可:
Copy to Clipboard引用的內容:[www.bkjia.com] RewriteEngine on四個RewriteCond排除四種訪問自己網站的方法,分別是不帶www訪問網站下某頁面、不帶www訪問網站首頁、帶www訪問網站下某頁面和帶www訪問網站首頁。符合這四種情況外的HTTP_REFERER,並且文件以jpg或jpeg、gif、png結尾則轉到http://www.bkjia.com/img/hp.gif文件處。
把這個文件保存為.htaccess,上傳到/forum/images/avatars/目錄下即可。如想保護整個網站的圖片則上傳到根目錄;如想保護其他格式的文件則直接在RewriteRule中添加擴展名。
順便說一句:這種方法有一定的局限性,比如某些下載工具可以發送自定的“引用”值;此外有些用戶安裝的防火牆、殺毒軟件會阻止浏覽器發送HTTP_REFERER值給服務器,因此他們正常浏覽會受影響。真不知道這類防火牆軟件廠商是怎麼想的,因為這最多只涉及隱私(而且主要是HTTP_REFERER網站的隱私,跟訪問者沒什麼關系),而網絡安全無關。