如何使用.htaccess HTTP_HOST和HTTP_REFERER动态防止热链接(无需硬编码主机域)

时间:2012-03-25 06:34:37

标签: apache .htaccess dynamic hotlinking

我想知道如何防止热链接到我网站上的资源而不对域名进行硬编码

我需要这个,因为该软件将用于多个域,并且可以用作安装。指示每个用户在htaccess文件中进行更改以进入其当前域是不可行的。

我遇到了很多类似的代码。但在这里你可以看到你必须输入域名。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !www.example.com [NC]
RewriteRule \.(gif|jpg|png)$ - [F,NC]

我还从这个apache page看到了下面的片段,这似乎解决了这个问题。但出于某种原因无法让它发挥作用。

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"
RewriteRule ^/images - [F]

注意:我已设置本地域名来执行测试。所以我访问我的网站mysite.local而不是localhost / mysite

有没有办法可以阻止热链接而无需在htaccess中对域名进行硬编码?

1 个答案:

答案 0 :(得分:0)

看看2.2文档,我认为它实际上比2.4更简单。但测试肯定:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
RewriteRule ^/images - [F]