2009-08-07 17 views
12

Mam to w pliku .htaccess w mojej witrynie, aby zapobiec łączeniu obrazów, JS i CSS ze wszystkich innych domen.Zezwalaj/odmawiaj hotlinkowania obrazu za pomocą .htaccess

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

Pytanie: W jaki sposób mogę selektywnie zezwolić jednej lub dwóm domenom na hotlink?

Odpowiedz

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] 

będzie działać, jak to mówi .

„Refererr nie ma nic, a referer nie pasujące mydomain i Referer nie pasujące otherdomain.

Gdyby było tak, że starasz się zrobić odwrotnie (czarna lista zestaw domen z hotlinking) ty „d zrobić coś takiego

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

Rany, to było proste. Należy zdać sobie sprawę, że sam! Dzięki! – markratledge

+0

Jak określić nazwę hosta dynamicznie? – ymakux

3

Just add another condition przed RewriteRule dla każdej domeny, na którą chcesz zezwolić.

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

(przypuszczalnie nie obchodzi czy żądanie jest za pośrednictwem protokołu HTTP lub HTTPS lub cokolwiek, tak że można zostawić na zewnątrz aby uczynić go bardziej rodzajowe)

Powiązane problemy