12

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

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

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

4

2 回答 2

24
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]
于 2009-08-07T17:10:34.997 回答
3

只需在要允许的每个域的 RewriteRule 之前添加另一个条件。

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

(大概您不关心请求是通过 http 还是 https 或其他方式,因此您可以将其省略以使其更通用)

于 2009-08-07T17:09:49.507 回答