一般禁用热链接,但允许子域

时间:2011-11-06 16:01:29

标签: .htaccess hotlinking

所以我想一般禁用Hotlinking,但允许它用于子域“thumbs”。我的.htaccess如下:

#HOTLINKING
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://domain.com/.* [NC]
RewriteCond %{HTTP_HOST} !^thumbs.domain.com [NC]
RewriteCond %{REQUEST_FILENAME} !hotlink.png$
RewriteRule .*\.(png)$ http://domain.com/hotlink.png [R=302,L]

然而,它不起作用!我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您正在混合HTTP_REFERER和HTTP_HOST。您应该只使用HTTP_REFERER。所以:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://domain\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://thumbs\.domain\.com/ [NC]
RewriteCond %{REQUEST_FILENAME} !hotlink\.png$
RewriteRule .*\.(png)$ http://domain.com/hotlink.png [R=302,L]

甚至更短匹配所有子域名(以及以'domain.com'结尾的域名,但这不太可能)

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !domain\.com/ [NC]
RewriteCond %{REQUEST_FILENAME} !hotlink\.png$
RewriteRule .*\.(png)$ http://domain.com/hotlink.png [R=302,L]