2009-08-07 13 views
12

Así que tengo esto en mi sitio .htaccess archivo para evitar hotlinking de imágenes, JS y CSS de todos los demás dominios.Permitir/denegar imagen hotlinking con .htaccess

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

Pregunta: ¿Cómo permitiría selectivamente que uno o dos dominios se activen?

Respuesta

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] 

funcionará, ya que esto dice .

"Refererr no es nada, y árbitro no coincide midominio y árbitro no coincide otherdomain.

Si se diera el caso de que estuviera tratando de hacer lo contrario (lista negra de un conjunto de dominios de hotlinking) se Haría algo como

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

Por Dios, eso fue fácil. ¡Debería haberme dado cuenta! ¡Gracias! – markratledge

+0

¿Cómo se define el nombre de host de forma dinámica? – ymakux

3

Just add another condition antes de RewriteRule para cada dominio que desee permitir.

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

(presumiblemente no me importa si la solicitud se realiza a través de HTTP o HTTPS o lo que sea, lo que puede dejar que fuera para que sea más genérico)