Redirect dei nomi di dominio con Apache

Può capitare spesso che diversi domini puntino allo stesso sito. Ad esempio, potremmo avere acquistato sia il .it che il .com. Oppure due domini simili, come nel nostro caso: www.gibilogic.com che a www.gblogic.com. E comunque, come minimo, le versioni con o senza www. sono quasi sempre puntate verso lo stesso sito.

Per motivi tecnici, di SEO e di branding, è una buona idea avere un nome host principale per il nostro sito e fare in modo che, comunque venga chiamato, ci riporti sempre su questo nome principale. Vediamo nel dettaglio perchè, e come attivare questa opzione con Apache.

Configurazioni

Nonostante la maggior parte degli strumenti siano abbastanza flessibili da poter lavorare correttamente anche su diversi nomi host, alcuni di questi hanno bisogno di lavorare con un nome fisso.

Tra quelli che usiamo abitualmente possiamo citare WordPress e VirtueMart. Spostare dei siti che usano questi programmi, infatti, richiede un intervento manuale in una tabella o in un file di configurazione per impostare il nuovo nome host. E’ una cosa che facciamo, ad esempio, ogni volta che creiamo una demo.

SEO

Il page rank, uno dei componenti di valutazione delle nostre pagine, viene attribuito da Google sito per sito. Per Google, tuttavia, ciascun sito è identificato da un nome host. Per fare un esempio, questi sono tutti siti diversi per Google:

  • www.gibilogic.com
  • gibilogic.com
  • www.gblogic.com
  • gblogic.com

Fare in modo che si venga sempre riportati sul sito principale aiuta a concentrare il page rank su tale sito.

Inoltre, come mi ha fatto notare l’amico Fabio in questi giorni, è una buona pratica per l’ottimizzazione usare dei link assoluti nelle voci di menù principale, ad esempio

href="http://www.gibilogic.com/chi-siamo"

anzichè

href="/chi-siamo"

E’ chiaro che con una struttura di questo tipo diventa utile far puntare sempre al sito principale.

Branding

A volte i domini aggiuntivi ci servono solo per “catturare” settori particolari, come se noi dovessimo acquistare il dominio corso-joomla.com (che invece è già di Flavio Copes 🙂 ) ma facendolo puntare comunque al sito GiBiLogic. In tal caso, ritornare sempre al sito principale aiuta a diffondere e far conoscere il nostro nome aziendale e a creare quindi un “marchio” riconosciuto. Ovvero, fare quello che viene detto “branding“.

Come fare

Per ottenere questo redirect dinamico tra diversi nomi host bisogna usare alcune direttive offerte dal mod_rewrite. Tali direttive possono essere inserite nel virtual host del nostro sito o nel file .htaccess presente nella root del nostro sito. Nota: a seconda del provider o del CMS utilizzato, questo file potrebbe esserci già, oppure invece non essere permesso. Questo va discusso con il vostro fornitore di hosting.

Le direttive sono di questo tipo:

RewriteCond %{HTTP_HOST} ^gibilogic\.com$ [NC]
RewriteRule ^(.*)$ http://www.gibilogic.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^gblogic.com\.it$ [NC]
RewriteRule ^(.*)$ http://www.gibilogic.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.gblogic.com\.it$ [NC]
RewriteRule ^(.*)$ http://www.gibilogic.com/$1 [R=301,L]

In ciascuna di queste coppie, ecco cosa succede:

  1. la prima riga riconosce il fatto che il sito sia stato chiamato con un certo nome host, identificato dal valore di ambiente http_host; la riga successiva verrà eseguita solo se quest prima condizione è soddisfatta. Notare che il nome host viene riconosciuto tramite una espressione regolare, ed ecco spiegata la sintassi “particolare”.
  2. la seconda riga, come detto eseguita solo nel caso in cui la prima è soddisfatta, riscrive l’URL agganciando la parte di request (ad esempio “index.php?option=…” al nome host principale. Il redirect è di tipo 301, ovvero come piace a Google per non perdere un eventuale posizionamento.

Nota: le righe di RewriteCond potrebbero anche essere accorpate con un po’ di lavoro sull’espressione regolare, ma per motivi di chiarezza noi preferiamo tenerle così.

Tag: ,