如何保护图像不被热链接?

时间:2012-09-07 19:27:27

标签: apache .htaccess hotlinking

我在htaccess中尝试了以下代码来阻止我的图像被热链接,但是它无效。

SetEnvIfNoCase Referer "^http://www.example.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.example.comm$" locally_linked=1
SetEnvIfNoCase Referer "^http://example.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://example.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1
<FilesMatch "\.(gif|png|jpe?g|css|js)$">
  Order Allow,Deny
  Allow from env=locally_linked=1
</FilesMatch>

任何人都可以帮我解决如何防止热链接问题吗?

2 个答案:

答案 0 :(得分:2)

每当热链接时,这将显示固定图像。 (该图像可能会显示不允许热链接的消息...)

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

它检查Refererr不是什么都没有,并且referer与mydomain不匹配,然后它以图像nohotlink.jpg响应。

要更好地了解防止链接,请参阅以下SO线程:
Apache .htaccess hotlinking redirect
Apache Hotlink Protection for Download Folder
基础教程http://altlab.com/htaccess_tutorial.html

答案 1 :(得分:0)

除非引用来自example.com,否则不允许任何来自热链接的内容。

SetEnvIf Referer example\.com localreferer
<FilesMatch \.(jpg|png|gif|css|js|pdf|doc|xls|txt)$>
    Order deny,allow
    Deny from all
    Allow from env=localreferer
</FilesMatch>