Default domain con .htaccess

Se si dispone di più di un dominio che puntano allo stesso spazio web è possibile scegliere un default domain con .htaccess.

Lo scenario

Abbiamo più siti che puntano al medesimo spazio web, ad esempio:

miosito.it
miosito.com
miosito.net

puntano tutti alla stessa cartella nel medesimo webserver (per esempio /public_html/).

Abbiamo bisogno che qualunque dominio raggiunga l’internauta debba essere rediretto a miosito.it.

La soluzione

Aggiungere queste righe al proprio file .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    #MULTIDOMAIN REDIRECT
    RewriteCond %{HTTP_HOST} !^www\.miosito\.it$ [NC]
    RewriteRule ^(.*)$ http://www.miosito.it/$1 [L,R=301]
</IfModule>

Quello che abbiamo fatto è dire al server: “Se ti arriva una richiesta con il nome dominio diverso da miosito.it, gira tutto su miosito.it.

Spero di essere stato utile.

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.

.htaccess https redirect

Può capitare di dover forzare tutte le chiamate http in https per un sito.

Un modo molto pulito e semplice per farlo è modificare il file .htaccess presente nella root del proprio sito e ottenere un https redirect via .htaccess.

E’ necessario modificare il file .htaccess in modo che contenga le seguenti linee di codice

<IfModule mod_rewrite.c>
RewriteEngine on
 #FORCING HTTPS FOR ALL HTTP REQUESTS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Se è già stata creata una regola di rewrite (RewriteEngine on), sarebbe opportuno inserire questa come prima.

Spero queste informazioni tornino utili.