Redirect di immagini via .htaccess

Questo articolo spiega come eseguire un redirect di un’immagine attraverso il file .htaccess.

Sarà capitato a tutti gli sviluppatori web di avere un ambiente di test e un ambiente di produzione, rispettivamente dove vengono testate le modifiche e dove esse prendono corpo.

Una delle questioni più annose quando si usano due o più ambienti per lo sviluppo di un progetto, è la sincronia dei dati in essi presenti per finalità di testing o di sviluppo.

Un tipico caso è quello di un ambiente di test (o anche di sviluppo) che non contiene tutti gli articoli, i prodotti, le pagine che in produzione, a seguito di un lavoro certosino, sono state create da una redazione e sebbene sia a volte sufficiente portare tutto il database dalla produzione all’ambiente di test per ottenere le istanze dei contenuti ivi assenti, questo discorso non può essere fatto per le immagini (ed in generale per i file).

Ma vi immaginate a trasferire centinaia (a volte migliaia) di immagini da un server all’altro? Una follia …

Allora si potrebbero sempre cambiare i path delle immagini referenziate mediante il DB, ma non è mai bello dover smanettare nel database specie se è di dimensioni abnormi e specie se questa operazione va ripetuta nel tempo.

Per questa ragione ci viene incontro il file .htaccess che ci consente di redirigere tutto quello che non viene reperito sull’ambiente locale ad un altro ambiente remoto (accessibile ovviamente).

Con queste poche righe mostro un esempio:

<IfModule mod_rewrite.c>
  RewriteEngine on
  #get remote image
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png)$
  RewriteRule ^(.*)$  http://www.MIOSITO.it/$1 [L]
</IfModule>

L’esempio illustrato è stato testato con ambienti in cui è montato Drupal.

Ovviamente è necessario che tale codice sia presente sul solo ambiente di test per evitare sorprese sgradite.