Come prevenire hotlinking con il file .htaccess

Gli hotlinking sono dei link "inline", dei link che linkano direttamente all'oggetto, (solitamente un'immagine, un file multimediale, ma anche l'intera pagina) che si trova in una pagina di un sito esterno.
Quest'ultimo ha quindi un link inline dal primo sul quale si trova l'oggetto ed utilizza, tra l'altro, anche la sua banda di traffico. Una questione delicata quindi se si ha una determinata quantità di banda giornaliera o mensile a disposizione.

Questo potrebbe essere negativo per chi ha un photoblog o presenta sul sito delle belle foto, che vengono linkate per essere utilizzate in altri siti (senza permesso tra l'altro).

Per chi utilizza un server apache si hanno buone probabilità di bloccare gli hotlinking tramite il file .htaccess.

Nel file .htaccess si prepara una lista, in cui si indica l'indirizzo del sito o dei siti che sono autorizzati ad utilizzare gli oggetti (immagini, file, pagine) presentati sul sito in questione. Si indica quale URL è autorizzato ad utilizzare un determinato formato file (definito con l'estensione dello stesso).

Esempio: tutte le richieste dirette ai file con l'estensione .jpg dal dominio "nomedominio.com" vengono autorizzate, tutti gli altri accessi da altri domini vengono indirizzate verso un altro URL, per esempio un file immagine.

Si introduce "nomedominio.com" nella lista degli URL autorizzati, le estensioni gif,jpg,GIF,JPG nelle estensioni ammesse e l'URL per il riindirizzamento.

Si aggiungono quindi le seguenti righe nel file .htaccess che si trova nella directory root del server:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.com*$ [NC]
RewriteRule .*\.(gif|jpg|GIF|JPG)$ http://www.nomedominio.com/image.jpg [R,NC]

Se "RewriteEngine on" fosse già stato introdotto precedentemente, aggiungere solamente le altre righe.

Questa è un'eccezione nel file .htaccess:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.it/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.it$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedominio.org$ [NC]
RewriteRule .*\.(gif|jpg|GIF|JPG)$ http://www.nomedominio.com/image.jpg [R,NC]

Coloro che hanno ancora hotlinking verso il sito continuano ad utilizzare banda del server (l'immagine che viene caricata), ma non potranno più utilizzare le foto!