Отключить Hotlinking в целом, но разрешить субдомен - PullRequest
1 голос
/ 06 ноября 2011

Итак, я хочу отключить 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 Ответ

1 голос
/ 07 ноября 2011

Вы смешиваете 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]
...