Come fare il redirect di un sito da www.qualcosa.it a qualcosa.it (e viceversa)

Come fare il redirect di un sito da www.qualcosa.it a qualcosa.it (e viceversa)

Le operazioni di redirect dei domini sono a volte complicate da fare, e rischiano di rendere infernale la gestione del nostro sito; basta poco, a volte, per sbagliarsi, e per rendere l’indirizzo del sito perfettamente inservibile. In questa guida vedremo come orientarsi meglio e come effettuare rapidamente un’operazione che è, in generale, abbastanza semplice da eseguire.

Togliere il prefisso www. da un sito (oppure, in alternativa, aggiungere il prefisso www. ad un sito) sono due tipi di operazione profondamente diverse tra loro, che spesso vengono chiamate redirect in modo, forse, abbastanza improprio. Il redirect viene in questo caso effettuato mediante modifica del file .htaccess di Apache, e questo può avvenire in più modi (redirect 301, di norma, che è quello sicuro per motori di ricerca ed utenti). Poichè esiste una certa confusione sull’argomento, credo che sia il caso di affrontare l’argomento in modo sistematico, cercando di farvi capire una buona volta quello che serve sapere.

Fate attenzione che queste impostazioni sono molto particolari, e in caso di configurazioni errate potrebbero temporaneamente compromettere la funzionalità del vostro sito.

Redirect da miosito.it a www.miosito.it

Quando acquistiamo un nuovo dominio (miosito.it) di norma il prefisso www è già attivo di suo: non è altro, infatti, che un particolare campo all’interno dei record dei domini (o DNS) pre-configurato dall’hosting.

Ma se non fosse preconfigurato dovremmo intervenire noi per colmare la lacuna: ci servirà anzitutto conoscere l’indirizzo IP numerico del nostro sito, cosa che potremmo ricavare facilmente dalla mail di configurazione che abbiamo ricevuto all’attivazione del dominio oppure, al limite, consultando le FAQ del nostro web hosting.

Configurare il record A del DNS

Dopo aver trovato il nostro IP numerico (ad esempio xxx.yyy.zzz.kkk), dovrete aggiungere un record di tipo A (che serve a collegare un host ad un IP, per l’appunto) con valore pari all’indirizzo da voi reperito. In genere possono essere impostati più valori di record A per lo stesso sito, e questo tende a non creare conflitti come su altre tipologie di DNS.

Si distinguono tre tipi di campo per ogni record:

  1. il Nome (detto a volte Alias o Host), che indica il nome (simbolico) della proprietà;
  2. il Valore (detto a volte Risposta o Destinazione), che rappresenta il valore della precedente;
  3. il tipo di record (A, CNAME, TXT, ecc.);
  4. un campo Priorità opzionale.

Il nome, in questo caso, dovrebbe tipicamente corrispondere con un * (asterisco), un simbolo @ oppure un campo vuoto (questo è il campo che crea maggiori dubbi e confusione, in effetti).

Nella pratica ciò equivale ad aggiungere un record di tipo A, con nome @ e valore xxx.yyy.zzz.kkk:

@ A xxx.yyy.zzz.kkk

Ciò dovrebbe bastare, in molti casi, a redirezionare tutte le richieste del sito in questione (mappato su xxx.yyy.zzz.kkk) da miosito.it a www.miosito.it.

L’aggiunta di questo record permette al sito di essere riconosciuto anche in termini di www.miosito.it, dandomi specificatamente la possibilità di indirizzare in automatico le richieste di chi digita il nome del sito senza tale prefisso. Hosting diversi possono fare riferimento a convenzioni diverse, per cui è difficile essere più specifici di così: Google ad esempio ha elencato tutti i vari casi di configurazione dei principali provider di DNS a questo indirizzo, che suggerisco sempre di consultare in caso di dubbi. In sostanza, quindi, quello che abbiamo chiamato “redirect” è, di fatto, più correttamente un’operazione di configurazione del DNS e di configurazione del file .htaccess.

Se il dominio è stato ben configurato come illustrato, quindi, potreste aver bisogno di intervenire sul file .htaccess del vostro sito; lo andrete a modificare, ed inserirete qualcosa del tipo

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

che serve ad imporre al server che tutte le chiamate al sito senza www siano obbligatoriamente provviste di www. Tale configurazione non può funzionare, ovviamente, se a monte non ci siano record DNS ben configurati.

Attenzione perchè questo passaggio è anch’esso delicato: se nel vostro file htaccess non c’è nulla, basta copia-incollare quelle tre righe. Se invece ci fosse qualcosa di pre-esistente, dovrete integrare i due file in modo da rispettare la sintassi di htaccess. In caso di errori, infatti, è altamente probabile che il vostro sito smetta di funzionare per intero.

Se avete l’htaccess di WordPress, ad esempio:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

l’integrazione andrebbe fatta così:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^miosito.it [NC]
RewriteRule ^(.*)$ http://www.miosito.it/$1 [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Le configurazioni possono variare leggermente a seconda dell’hosting, e spesso è necessario fare riferimento alla documentazione specifica del caso. Ad esempio, se usate Tophost in uno qualsiasi dei suoi piani di hosting fate riferimento al buon tutorial di Ilaria Pillai che spiega chiaramente come configurare il vostro dominio in questa circostanza, visto che di default con i piani di questo servizio il www non è per forza pre-configurato.

Redirect da www.miosito.it a miosito.it

Percorrendo inversamente la strada, potremmo pensare di voler configurare il nostro sito perchè il www, magari attivo di default, venga invece rimosso in automatico.

Per farlo sarà necessario intervenire ancora una volta sul file .htaccess:

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

dove anche qui valgono le considerazioni sull’integrazione con le precedenti impostazioni del file, che vanno preservate e non cancellate. Essa serve ad imporre al server che tutte le chiamate al sito con www siano invece sprovviste di www, ovvero che il www venga rimosso di default. Tale configurazione non può funzionare, ovviamente, se a monte non ci siano record DNS ben configurati.

Questo secondo tipo di configurazione non presenta particolari problemi, di norma, e può essere effettuata facilmente sfruttando quelle semplici due o tre righe.

Potrebbe intervenire qualche problema, piuttosto, nella configurazione del DNS del vostro sito, che va sempre effettuata con cura e seguendo le eventuali indicazioni fornite dal servizio di hosting che state sfruttando.

(Altre fonti utilizzate: Google, tools.ietf.org, Yoast.com)

Photo by Peter Zuco

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.