Ridirezionare il traffico verso www usando .htaccess

Logo Apache at davidonzo.comSiamo abituati a pensare ad un dominio di secondo livello con il prefisso www. Ci viene naturale, per molti è sempre stato così, ma in realtà quel www non è altro che un terzo livello del dominio.

Per chiarire, quando registriamo un dominio di secondo livello, ci impossessiamo della parola che sta prima dell’estensione del dominio stesso. L’esempio scolastico è example.com.

Quando però sulla barra degli indirizzi digitiamo www.example.com, stiamo richiamando un dominio di terzo livello di example.com. Per il quale è richiesto un record DNS dedicato.

Succede spesso (è il caso di Aruba con il contratto di hosting) che registrando un dominio di secondo livello, il mantainer configuri automaticamente anche il terzo livello www facendolo puntare allo stesso contenuto ed impostando un redirect automatico da example.com a www.example.com.

La cosa non è però obbligatoria e senza specifiche indicazioni il dominio di secondo livello non punterà automaticamente al terzo livello www corrispondente.

Se il webserver utilizzato sul server è apache e se in questo il mod_rewrite è compilato e attivo (il 99,99% dei server Linux venduti in hosting ha come webserver apache ed il mod_rewrite disponibile) basta una semplice riga all’interno del file .htaccess per ridirezionare tutto il traffico verso il terzo livello www.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Sostituite example.com con il vostro dominio ed il gioco e fatto. Se la pagina richiesta non ha il www davanti, si viene reindirizzati alla stessa URL del terzo livello www. Viene inoltre inviato un header di redirect permanent utilizzando l’appropriato codice 301.