Ci sono diverse opzioni per rein­di­riz­za­re un dominio o un sot­to­do­mi­nio a un’altra sezione del sito o a un indirizzo esterno. Tra i metodi più comuni di rein­di­riz­za­men­to, chiamato anche “inoltro” o “redirect” in inglese, ci sono quelli tramite .htaccess, script PHP, meta tag HTML e Ja­va­Script.

Rein­di­riz­za­men­to del dominio per un sito

I rein­di­riz­za­men­ti servono es­sen­zial­men­te a co­mu­ni­ca­re al server che i contenuti di un sito sono stati tra­sfe­ri­ti da un URL a un altro. Ciò è so­prat­tut­to fon­da­men­ta­le nel caso in cui l’indirizzo web ori­gi­na­rio sia la de­sti­na­zio­ne di un link in entrata, sia stato salvato come se­gna­li­bro sul computer di un utente o si collochi già tra le prime posizioni nei motori di ricerca. In questo caso l’inoltro comunica al browser o al web crawler che il contenuto ricercato è stato spostato e rimanda al nuovo indirizzo. Al­tri­men­ti i vi­si­ta­to­ri e le vi­si­ta­tri­ci vi­sua­liz­ze­reb­be­ro solamente una pagina di errore 404 al posto della pagina richiesta.

So­prat­tut­to nel caso di progetti com­mer­cia­li andrebbe evitato. Spe­cial­men­te i negozi online offrono un as­sor­ti­men­to di prodotti in costante aumento, il che si riflette in un gran numero di pagine web. Qualora un articolo non fosse più di­spo­ni­bi­le, i po­ten­zia­li clienti vengono sem­pli­ce­men­te rein­di­riz­za­ti su una pagina con prodotti simili. In questo modo si ca­na­liz­za­no i flussi di vi­si­ta­to­ri in maniera ef­fi­cien­te e si riducono gli abbandoni.

Im­po­stan­do un rein­di­riz­za­men­to del dominio, puoi anche rendere ac­ces­si­bi­le lo stesso contenuto da diversi indirizzi web. Tutti gli indirizzi al­ter­na­ti­vi vengono sem­pli­ce­men­te rein­di­riz­za­ti al dominio prin­ci­pa­le scelto. Questo inoltro di dominio on­ni­com­pren­si­vo è in­di­pen­den­te dall’URL o dal percorso specifico inserito dagli utenti.

Acquista e registra il tuo dominio con il provider n°1 in Europa
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Tipi di rein­di­riz­za­men­to del dominio

Si distingue es­sen­zial­men­te tra rein­di­riz­za­men­ti lato server e lato client. Mentre nei rein­di­riz­za­men­ti lato server viene trasmesso allo user agent (browser o web crawler) il cor­ri­spon­den­te codice di stato HTTP, i rein­di­riz­za­men­ti lato client avvengono senza ricevere una simile risposta e non sono per questo sup­por­ta­ti da tutti gli user agent. In alcuni casi i vi­si­ta­to­ri e le vi­si­ta­tri­ci rimangono così sulla pagina ori­gi­na­ria aperta e non vengono rein­di­riz­za­ti alla nuova de­sti­na­zio­ne. La rea­liz­za­zio­ne lato server è per questo ge­ne­ral­men­te preferita. Le soluzioni lato client vengono usate solo nel caso in cui non si possa applicare un inoltro del dominio lato server a causa di li­mi­ta­zio­ni tecniche.

Un’altra forma di inoltro è il rein­di­riz­za­men­to del dominio senza modifica dell’URL, spesso chiamato anche inoltro tra­spa­ren­te o in­vi­si­bi­le. Con questo tipo di rein­di­riz­za­men­to del dominio con ma­sche­ra­men­to, l’URL vi­sua­liz­za­to dall’utente non viene mo­di­fi­ca­to, anche se il client è stato inoltrato a un altro dominio e viene vi­sua­liz­za­to il contenuto di un’altra pagina web. Tuttavia, poiché questo tipo di inoltro può causare dif­fi­col­tà di in­di­ciz­za­zio­ne e di vi­sua­liz­za­zio­ne dell’URL nel browser, non è con­si­glia­to da uti­liz­za­re sempre.

Consiglio

Desideri impostare il rein­di­riz­za­men­to di un dominio? Nel seguente articolo del Centro as­si­sten­za IONOS imparerai passo dopo passo come inoltrare il tuo dominio a un altro!

Rein­di­riz­za­men­to lato server

Nella maggior parte dei casi il rein­di­riz­za­men­to del dominio lato server avviene tramite il file di con­fi­gu­ra­zio­ne .htaccess o at­tra­ver­so uno script PHP. Il vantaggio di questi metodi è che si può stabilire in modo personale quali codici di stato HTTP debbano essere trasmessi allo user agent. Ciò consente ai gestori dei siti di indicare gli inoltri del dominio come per­ma­nen­ti o tem­po­ra­nei. In questo contesto sono rilevanti so­prat­tut­to i codici di stato 301 e 302:

  • 301 - Moved Per­ma­nen­tly: la risorsa richiesta dallo user agent è di­spo­ni­bi­le per­ma­nen­te­men­te all’URL scelto per il rein­di­riz­za­men­to. L’URL pre­ce­den­te è d’ora in avanti non più valido. In questo caso è ne­ces­sa­rio con­fi­gu­ra­re un rein­di­riz­za­men­to 301.
  • 302 - Moved Tem­po­ra­ri­ly: la risorsa richiesta dallo user agent è tem­po­ra­nea­men­te rag­giun­gi­bi­le all’URL scelto per il rein­di­riz­za­men­to. Al contrario del codice 301, l’URL ori­gi­na­rio rimane valido malgrado l’inoltro.

Se il codice di stato HTTP non viene definito espli­ci­ta­men­te, un server web trasmette per im­po­sta­zio­ne pre­de­fi­ni­ta, nel caso di un inoltro lato server, il codice di stato 302. Non sempre è però voluto. Si consiglia perciò di inserire ma­nual­men­te per ogni rein­di­riz­za­men­to il codice di stato de­si­de­ra­to per evitare problemi di in­di­ciz­za­zio­ne, come l’URL hijacking. Al contrario dell’inoltro 301, il codice di stato 302 comunica al crawler che l’URL ori­gi­na­rio deve rimanere in­di­ciz­za­to. Qualora l’indirizzo di rein­di­riz­za­men­to funzioni a lungo, l’indirizzo inoltrato concorre con la de­sti­na­zio­ne di inoltro nell’indice dei motori di ricerca.

Rein­di­riz­za­men­to tramite .htaccess

L’.htaccess è un file di con­fi­gu­ra­zio­ne per il server Apache con il quale la con­fi­gu­ra­zio­ne prin­ci­pa­le si so­vra­scri­ve a livello delle cartelle. Questo file permette ai gestori dei siti di apportare modifiche alle im­po­sta­zio­ni di spe­ci­fi­che cartelle per un dominio e alle sue sot­to­car­tel­le. Una funzione del file .htaccess è il rein­di­riz­za­men­to del dominio lato server a indirizzi ap­par­te­nen­ti a un unico progetto su altri URL.

Il codice nel file .htaccess può essere uti­liz­za­to per impostare il rein­di­riz­za­men­to del dominio. Se si crea un file .htaccess con il seguente codice nella root, le richieste al dominio ori­gi­na­rio vengono rein­di­riz­za­te lato server al dominio www.esempio.it:

Redirect 301 / http://www.esempio.it/
apa­che­conf

La riga di codice inizia con Redirect 301 e sta­bi­li­sce così il codice di stato HTTP co­mu­ni­ca­to dal server. A questo segue il percorso ai contenuti che devono essere inoltrati, in questo caso tutti, come sta­bi­li­sce lo slash. La con­clu­sio­ne è formata dall’indirizzo completo dell’URL di de­sti­na­zio­ne al quale lo user agent deve essere rein­di­riz­za­to: http://www.esempio.it.

Con questo metodo si possono rein­di­riz­za­re anche singoli file. Il codice seguente mostra un rein­di­riz­za­men­to tramite .htaccess da un dominio a un altro:

Redirect 301 /cartella/documento-esempio.html http://www.esempio.it/esempio.html
apa­che­conf

Dopo il codice di stato 301 viene indicato il percorso della directory in cui si trova il file che deve essere rein­di­riz­za­to per­ma­nen­te­men­te (/cartella/documento-esempio.html), così come l’indirizzo della de­sti­na­zio­ne di inoltro (http://www.esempio.it/esempio.html).

Su un server Apache in cui è attivo il modulo mod_rewrite, il rein­di­riz­za­men­to per­ma­nen­te di una pagina di esempio a un’altra sarebbe come di seguito:

RewriteEngine On
RewriteRule ^cartella/documento-esempio.html$ http://www.esempio.it/esempio.html [L,R=301]
apa­che­conf

Nella riga 01 il modulo mod_rewrite del server web Apache viene attivato con il comando RewriteEngine On. Dopo segue una RewriteRule con il percorso del file di inoltro e l’indirizzo di de­sti­na­zio­ne. Il segno di omissione e quello del dollaro segnano l’inizio e la fine del percorso, L indica l’ultima regola mod_rewrite per le richieste cor­ri­spon­den­ti, R=301 inoltra il codice di stato HTTP 301.

Consiglio

In un altro articolo abbiamo raccolto alcuni trucchi con il file .htaccess per te.

Scopri anche di più sul rewrite engine.

Con­fi­gu­ran­do un rein­di­riz­za­men­to del dominio tramite .htaccess, è da tenere presente che comandi errati in questo file possono ri­per­cuo­ter­si ne­ga­ti­va­men­te sul fun­zio­na­men­to del sito. Le relative im­po­sta­zio­ni do­vreb­be­ro essere in ogni caso testate ac­cu­ra­ta­men­te perché le modifiche diventano valide non appena si salva il file .htaccess.

Rein­di­riz­za­men­to PHP

Un rein­di­riz­za­men­to del dominio non avviene solo con­fi­gu­ran­do il file .htaccess, ma anche tramite il comando cor­ri­spon­den­te in uno script PHP (per esempio nell’index.php). Il codice seguente mostra un rein­di­riz­za­men­to per­ma­nen­te su un URL di de­sti­na­zio­ne fittizio www.esempio.it.

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.esempio.it");
exit;
?>
php

Nel rein­di­riz­za­men­to tramite uno script PHP, il codice di stato HTTP proposto viene definito tramite la funzione header nella riga di codice 02. In questo esempio deve essere applicato un rein­di­riz­za­men­to per­ma­nen­te 301. Visto che gli inoltri lato server vengono eseguiti ge­ne­ral­men­te solo tem­po­ra­nea­men­te, si deve forzare espli­ci­ta­men­te lil rein­di­riz­za­men­to per­ma­nen­te tramite il codice di stato 301. L’indirizzo di de­sti­na­zio­ne dell’inoltro del dominio viene inserito ugual­men­te nella riga di codice 03 con header. L’inoltro nell’esempio avviene sull’indirizzo http://www.esempio.it. La funzione exit nella riga 04 termina lo script ed evita che venga eseguito il codice suc­ces­si­vo. Il blocco del codice deve essere po­si­zio­na­to all’inizio per far in modo che l’inoltro tramite script PHP funzioni, prima che il server consegni degli eventuali contenuti HTML alla pagina di rein­di­riz­za­men­to.

Rein­di­riz­za­men­to lato client

Se l’im­po­sta­zio­ne di un rein­di­riz­za­men­to del dominio lato server non è possibile per motivi tecnici, i gestori dei siti possono ricorrere a una soluzione basata sul client. Per questo sono a di­spo­si­zio­ne il meta tag HTML refresh e uno cor­ri­spon­den­te per Ja­va­Script. Lo svan­tag­gio di un rein­di­riz­za­men­to lato client è che il server non consegna alcun codice di stato HTTP al browser ri­chie­den­te o al web crawler al quale non viene indicato l’inoltro in modo esplicito. In più gli inoltri lato client non vengono sup­por­ta­ti da tutti gli user agent e perciò si corre il rischio che alcuni vi­si­ta­to­ri e alcune vi­si­ta­tri­ci non vengano rein­di­riz­za­te.

I rein­di­riz­za­men­ti lato client si ri­per­cuo­to­no ne­ga­ti­va­men­te anche sull’in­di­ciz­za­zio­ne sui motori di ricerca. Un’esplicita esclu­sio­ne dall’indice tramite il cor­ri­spet­ti­vo codice di stato HTTP 301 non avviene nel caso di inoltri lato client. Perciò può anche ve­ri­fi­car­si nel po­si­zio­na­men­to sui motori di ricerca che il dominio inoltrato entri in con­cor­ren­za con il dominio di de­sti­na­zio­ne. Al contrario dei rein­di­riz­za­men­ti lato server, che a parte per il cambio di indirizzo rimangono in­vi­si­bi­li per l’utente, gli inoltri lato client sono sempre ac­com­pa­gna­ti da un ritardo che l’utente potrebbe notare.

Inoltro tramite meta tag HTML “refresh”

Un rein­di­riz­za­men­to di questo tipo viene impostato tramite i meta tag con l’attributo http-equiv. Per questo deve essere creato soltanto un semplice file HTML con il tag ap­pro­pria­to nell’header per l’inoltro. Per indicare il rein­di­riz­za­men­to alle vi­si­ta­tri­ci e ai vi­si­ta­to­ri del tuo sito, dovresti creare un documento HTML espli­ca­ti­vo al riguardo. Ad esempio, una possibile frase potrebbe essere “Attendi qualche secondo per il rein­di­riz­za­men­to”. Il codice seguente mostra un semplice rein­di­riz­za­men­to di dominio tramite meta tag HTML “refresh” a un indirizzo di de­sti­na­zio­ne fittizio:

tramite il meta tag http-equiv="refresh" viene ordinato al client di rein­di­riz­za­re il dominio. Come questo avvenga, viene definito nell’attributo Content. Nell’esempio è previsto un rein­di­riz­za­men­to del dominio di de­sti­na­zio­ne www.esempio.it dopo 10 secondi.

<meta http-equiv="refresh" content="10; url=http://www.esempio.it/">
html

Rein­di­riz­za­men­to tramite Ja­va­Script

Una pos­si­bi­li­tà facile per il rein­di­riz­za­men­to del dominio lato client è offerta da Ja­va­Script. Ma come nel caso del meta tag refresh dovresti uti­liz­za­re gli inoltri con Ja­va­Script solo in via ec­ce­zio­na­le perché il lin­guag­gio di scripting per motivi di sicurezza potrebbe non essere sup­por­ta­to da tutti i browser. In più con i rein­di­riz­za­men­ti tramite Ja­va­Script nascono problemi per i web crawler e gli utenti che hanno attivi dei com­po­nen­ti ag­giun­ti­vi per bloccare gli script. Il seguente codice indica un classico rein­di­riz­za­men­to del dominio con Ja­va­Script:

<script> 
window.location.replace('http://www.esempio.it'); 
</script>
html

Qui è rilevante so­prat­tut­to la riga 02. Nel codice di esempio viene uti­liz­za­to l’oggetto window.location per rimandare all’indirizzo web attuale. Il comando replace indica al browser di rein­di­riz­za­re l’utente al dominio di de­sti­na­zio­ne definito tra parentesi www.esempio.it.

Controllo Dominio
Vai al menu prin­ci­pa­le