允许/拒绝使用.htaccess进行图像热链接

时间:2009-08-07 16:59:56

标签: .htaccess mod-rewrite hotlinking

所以我在我的网站.htaccess文件中有这个,以防止来自所有其他域的图像,JS和CSS的链接。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]

问题:如何有选择地允许一个或两个域进行热链接?

2 个答案:

答案 0 :(得分:22)

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与其他域名不匹配。

如果是你试图做相反的事情(黑名单来自hotlinking的一组域名)你会做类似的事情

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]

答案 1 :(得分:3)

在您想要允许的每个域的RewriteRule之前

Just add another condition

RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]  

(大概你不在乎请求是通过http还是https或其他什么,所以你可以把它留下来让它更通用)