我以这种方式设置我的htaccess来阻止热链接:
RewriteCond%!^ http://( . )?mydomain.com/ [NC]
RewriteCond%!^ $
RewriteRule . * . (bmp | dtd | flv | jpeg | jpg | gif | png | psd | swf | tif | txt | mov | mpeg | mp3 | xml)$ - [F,NC,L]
问题是它通过HTML(例如<img>标签)完美地运行,但它不会阻止通过CSS进行热链接(例如,背景图像网址)
所以这里是对我的意思的澄清:
服务器A(我的域名)
服务器B(另一个域)
服务器A托管文件/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 . 它不适用于EITHER .
1 回答
当你说“不阻止通过CSS进行热链接”时,你的意思是1)其他人仍然可以将你现有的CSS文件与他们的页面一起使用,或者2)其他人可以将你的图像放在他们自己的CSS文件中吗?
如果1)可能是图像提取的引用者标头是CSS文件本身,它将来自您的服务器,因此将失败第一个RewriteCond规则并且不会阻止提取 .