2009-08-07 3 views
12

Так что у меня есть это на моем файле .htaccess на моем сайте. Htaccess, чтобы предотвратить хотлинкинг изображений, JS и CSS из всех других доменов.Разрешить/запретить обращение к изображениям с помощью .htaccess

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

Вопрос: Как бы я выборочно разрешил одну или две домены для хотлинков?

ответ

21
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 не ничего, а реферер не соответствие MYDOMAIN и реферер не соответствие otherdomain.

Если бы это было так, что вы пытаетесь сделать наоборот (черный список набора доменов из хотлинкинга) вы «d сделать что-то вроде

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

господи, это было легко. Если понял, что сам! Спасибо! – markratledge

+0

Как определить имя хоста динамически? – ymakux

3

Just add another condition до RewriteRule для каждого домена, который вы хотите разрешить.

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

(предположительно не волнует, если запрос через HTTP или HTTPS или любой другой, так что вы можете оставить это, чтобы сделать его более универсальным)