【问题标题】:Allow/deny image hotlinking with .htaccess允许/拒绝使用 .htaccess 进行图像盗链
【发布时间】:2010-11-17 18:25:40
【问题描述】:
所以我在我的站点 .htaccess 文件中添加了这个,以防止来自所有其他域的图像、JS 和 CSS 的热链接。
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
问题:我如何选择性地允许一个或两个域进行热链接?
【问题讨论】:
标签:
.htaccess
mod-rewrite
hotlinking
【解决方案1】:
Just add another condition 在您要允许的每个域的 RewriteRule 之前。
RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]
(大概您不关心请求是通过 http 还是 https 或其他方式,因此您可以将其省略以使其更通用)
【解决方案2】:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?otherdomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
正如上面所说,会起作用。
"Refererr 不是什么都没有,并且referer 不匹配mydomain,referer 不匹配otherdomain。
如果你试图做相反的事情(将一组域从热链接中列入黑名单),你会做类似的事情
RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain2\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]