La protezione degli hotlink non permette agli altri siti di richiamare le nostre immagini direttamente dal nostro server. Questo avviene perché nel codice del sito chiamante viene richiamato direttamente l’URL di un file che ospitiamo sul nostro server. Se non aggiungiamo alcuna protezione, l’hotlinking è automaticamente permesso. In molti casi questo può essere considerato un abuso delle nostre risorse.
Hotlink protection totale
Per bloccarne l’hotlink delle immagini possiamo aggiungere delle semplici regole al file .htaccess:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?NOSTRO_DOMINIO.IT [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] </IfModule>
Queste regole in sostanza intercettano tutte le richieste ai file che terminano in .jpg
, .jpeg
, .gif
, .png
e, nel caso NON vengano dal nostro sito, il nostro sistema non risponde. Ovviamente dovremo sostituire NOSTRO_DOMINIO.IT
con il nostro dominio reale.
Permettiamo l’hotlink da uno o più domini
Se, rispetto al caso precedente, volessimo permettere ad un qualche sito esterno di accedere, come un partner o un nostro sponsor, possiamo specificare a quali domini è permesso fare l’hotlinking delle nostre immagini:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?NOSTRO_DOMINIO.IT [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?ALTRO_SITO.IT [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] </IfModule>
In questo esempio abbiamo aggiunto una regola a quella precedente, che permette alle richieste provenienti da ALTRO_SITO.IT
(che naturalmente dobbiamo sostituire con il dominio reale) di non essere bloccate. Possiamo replicare questa regola per più domini, usandola più volte e indicando per ogni riga un dominio diverso.
Mostriamo un’immagine
Volendo, anziché bloccare totalmente le richieste alle nostre immagini, possiamo servire all’utente che approfitta delle nostre risorse un’immagine predefinita no_hotlink.jpg
.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?NOSTRO_DOMINIO.IT [NC] RewriteRule \.(jpg|jpeg|png|gif)$ /no_hotlink.jpg [NC,F,L] </IfModule>