2010-10-22 66 views
0

CSS我建立了我的htaccess的這種方式來阻止盜鏈:防止盜鏈經由的.htaccess

的RewriteCond%{HTTP_REFERER}^HTTP://(。+)mydomain.com/ [NC ]
RewriteCond%{HTTP_REFERER}!^ $
RewriteRule。*。(bmp | dtd | flv | jpeg | jpg | gif | png | psd | swf | tif | txt | mov | mpeg | mp3 | xml)$ - [F,NC,L]

的問題是,它的工作原理完全正常經由HTML(諸如< IMG>標記),但它並不能防止通過CSS盜鏈(例如,背景圖像URL)

因此,這裏是什麼我的意思是澄清:

服務器A(我的域名)
服務器B(另一個域)

服務器主機文件/myfile.jpg
服務器B主機的css文件/ mycss .css

服務器B的CSS文件包含background-image:url('server-A/myfile.jpg');這個CSS規則可以工作......它從服務器A加載jpg文件。如果服務器B也有一個< img src =「server-A/myfile.jpg」>,它不會加載。它只適用於CSS。它不應該爲任何工作。

+0

所以,你知道,有些瀏覽器不會發送HTTP_REFERER,合法用戶最終會看到破碎的圖像。除非你有一個非常嚴重的熱鏈接問題,否則你可能不應該打擾。 – meagar 2010-10-22 18:02:10

回答

0

當你說「不防止通過CSS進行盜鏈」時,你的意思是1)其他人仍然可以使用你現有的CSS文件和他們的頁面,或者2)其他人可以把你的圖片放在他們自己的CSS文件中?

如果1)可能是圖像抓取的引用標頭是CSS文件本身,它將來自您的服務器,所以會失敗第一個RewriteCond規則,並且抓取不會被阻止。

+0

對不起,我將編輯主要文本以進行澄清。 – JakeTheSnake 2010-10-22 17:55:05