Come funziona il reindirizzamento di un dominio?

Ci sono diverse opzioni per reindirizzare un dominio o un sottodominio a un’altra sezione del sito o a un indirizzo esterno. Tra i metodi più comuni di reindirizzamento, chiamato anche “inoltro” o “redirect” in inglese, ci sono quelli tramite .htaccess, script PHP, meta tag HTML e JavaScript.

Reindirizzamento del dominio per un sito

I reindirizzamenti servono essenzialmente a comunicare al server che i contenuti di un sito sono stati trasferiti da un URL a un altro. Ciò è soprattutto fondamentale nel caso in cui l’indirizzo web originario sia la destinazione di un link in entrata, sia stato salvato come segnalibro 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. Altrimenti i visitatori e le visitatrici visualizzerebbero solamente una pagina di errore 404 al posto della pagina richiesta.

Soprattutto nel caso di progetti commerciali andrebbe evitato. Specialmente i negozi online offrono un assortimento di prodotti in costante aumento, il che si riflette in un gran numero di pagine web. Qualora un articolo non fosse più disponibile, i potenziali clienti vengono semplicemente reindirizzati su una pagina con prodotti simili. In questo modo si canalizzano i flussi di visitatori in maniera efficiente e si riducono gli abbandoni.

Impostando un reindirizzamento del dominio, puoi anche rendere accessibile lo stesso contenuto da diversi indirizzi web. Tutti gli indirizzi alternativi vengono semplicemente reindirizzati al dominio principale scelto. Questo inoltro di dominio onnicomprensivo è indipendente dall’URL o dal percorso specifico inserito dagli utenti.

Dominio
Registra il tuo dominio
  • Certificato SSL Wildcard incluso
  • Registrazione di dominio sicura
  • Indirizzo e-mail professionale da 2 GB

Tipi di reindirizzamento del dominio

Si distingue essenzialmente tra reindirizzamenti lato server e lato client. Mentre nei reindirizzamenti lato server viene trasmesso allo user agent (browser o web crawler) il corrispondente codice di stato HTTP, i reindirizzamenti lato client avvengono senza ricevere una simile risposta e non sono per questo supportati da tutti gli user agent. In alcuni casi i visitatori e le visitatrici rimangono così sulla pagina originaria aperta e non vengono reindirizzati alla nuova destinazione. La realizzazione lato server è per questo generalmente 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 limitazioni tecniche.

Un’altra forma di inoltro è il reindirizzamento del dominio senza modifica dell’URL, spesso chiamato anche inoltro trasparente o invisibile. Con questo tipo di reindirizzamento del dominio con mascheramento, l’URL visualizzato dall’utente non viene modificato, anche se il client è stato inoltrato a un altro dominio e viene visualizzato il contenuto di un’altra pagina web. Tuttavia, poiché questo tipo di inoltro può causare difficoltà di indicizzazione e di visualizzazione dell’URL nel browser, non è consigliato da utilizzare sempre.

Consiglio

Desideri impostare il reindirizzamento di un dominio? Nel seguente articolo del Centro assistenza IONOS imparerai passo dopo passo come inoltrare il tuo dominio a un altro!

Reindirizzamento lato server

Nella maggior parte dei casi il reindirizzamento del dominio lato server avviene tramite il file di configurazione .htaccess o attraverso 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 permanenti o temporanei. In questo contesto sono rilevanti soprattutto i codici di stato 301 e 302:

  • 301 - Moved Permanently: la risorsa richiesta dallo user agent è disponibile permanentemente all’URL scelto per il reindirizzamento. L’URL precedente è d’ora in avanti non più valido. In questo caso è necessario configurare un reindirizzamento 301.
  • 302 - Moved Temporarily: la risorsa richiesta dallo user agent è temporaneamente raggiungibile all’URL scelto per il reindirizzamento. Al contrario del codice 301, l’URL originario rimane valido malgrado l’inoltro.

Se il codice di stato HTTP non viene definito esplicitamente, un server web trasmette per impostazione predefinita, nel caso di un inoltro lato server, il codice di stato 302. Non sempre è però voluto. Si consiglia perciò di inserire manualmente per ogni reindirizzamento il codice di stato desiderato per evitare problemi di indicizzazione, come l’URL hijacking. Al contrario dell’inoltro 301, il codice di stato 302 comunica al crawler che l’URL originario deve rimanere indicizzato. Qualora l’indirizzo di reindirizzamento funzioni a lungo, l’indirizzo inoltrato concorre con la destinazione di inoltro nell’indice dei motori di ricerca.

Reindirizzamento tramite .htaccess

L’.htaccess è un file di configurazione per il server Apache con il quale la configurazione principale si sovrascrive a livello delle cartelle. Questo file permette ai gestori dei siti di apportare modifiche alle impostazioni di specifiche cartelle per un dominio e alle sue sottocartelle. Una funzione del file .htaccess è il reindirizzamento del dominio lato server a indirizzi appartenenti a un unico progetto su altri URL.

Il codice nel file .htaccess può essere utilizzato per impostare il reindirizzamento del dominio. Se si crea un file .htaccess con il seguente codice nella root, le richieste al dominio originario vengono reindirizzate lato server al dominio www.esempio.it:

Redirect 301 / http://www.esempio.it/
apacheconf

La riga di codice inizia con Redirect 301 e stabilisce così il codice di stato HTTP comunicato dal server. A questo segue il percorso ai contenuti che devono essere inoltrati, in questo caso tutti, come stabilisce lo slash. La conclusione è formata dall’indirizzo completo dell’URL di destinazione al quale lo user agent deve essere reindirizzato: http://www.esempio.it.

Con questo metodo si possono reindirizzare anche singoli file. Il codice seguente mostra un reindirizzamento tramite .htaccess da un dominio a un altro:

Redirect 301 /cartella/documento-esempio.html http://www.esempio.it/esempio.html
apacheconf

Dopo il codice di stato 301 viene indicato il percorso della directory in cui si trova il file che deve essere reindirizzato permanentemente (/cartella/documento-esempio.html), così come l’indirizzo della destinazione di inoltro (http://www.esempio.it/esempio.html).

Su un server Apache in cui è attivo il modulo mod_rewrite, il reindirizzamento permanente 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]
apacheconf

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 destinazione. 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 corrispondenti, 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.

Configurando un reindirizzamento del dominio tramite .htaccess, è da tenere presente che comandi errati in questo file possono ripercuotersi negativamente sul funzionamento del sito. Le relative impostazioni dovrebbero essere in ogni caso testate accuratamente perché le modifiche diventano valide non appena si salva il file .htaccess.

Reindirizzamento PHP

Un reindirizzamento del dominio non avviene solo configurando il file .htaccess, ma anche tramite il comando corrispondente in uno script PHP (per esempio nell’index.php). Il codice seguente mostra un reindirizzamento permanente su un URL di destinazione fittizio www.esempio.it.

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

Nel reindirizzamento 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 reindirizzamento permanente 301. Visto che gli inoltri lato server vengono eseguiti generalmente solo temporaneamente, si deve forzare esplicitamente lil reindirizzamento permanente tramite il codice di stato 301. L’indirizzo di destinazione dell’inoltro del dominio viene inserito ugualmente 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 successivo. Il blocco del codice deve essere posizionato 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 reindirizzamento.

Reindirizzamento lato client

Se l’impostazione di un reindirizzamento 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 disposizione il meta tag HTML refresh e uno corrispondente per JavaScript. Lo svantaggio di un reindirizzamento lato client è che il server non consegna alcun codice di stato HTTP al browser richiedente o al web crawler al quale non viene indicato l’inoltro in modo esplicito. In più gli inoltri lato client non vengono supportati da tutti gli user agent e perciò si corre il rischio che alcuni visitatori e alcune visitatrici non vengano reindirizzate.

I reindirizzamenti lato client si ripercuotono negativamente anche sull’indicizzazione sui motori di ricerca. Un’esplicita esclusione dall’indice tramite il corrispettivo codice di stato HTTP 301 non avviene nel caso di inoltri lato client. Perciò può anche verificarsi nel posizionamento sui motori di ricerca che il dominio inoltrato entri in concorrenza con il dominio di destinazione. Al contrario dei reindirizzamenti lato server, che a parte per il cambio di indirizzo rimangono invisibili per l’utente, gli inoltri lato client sono sempre accompagnati da un ritardo che l’utente potrebbe notare.

Inoltro tramite meta tag HTML “refresh”

Un reindirizzamento 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 appropriato nell’header per l’inoltro. Per indicare il reindirizzamento alle visitatrici e ai visitatori del tuo sito, dovresti creare un documento HTML esplicativo al riguardo. Ad esempio, una possibile frase potrebbe essere “Attendi qualche secondo per il reindirizzamento”. Il codice seguente mostra un semplice reindirizzamento di dominio tramite meta tag HTML “refresh” a un indirizzo di destinazione fittizio:

tramite il meta tag http-equiv="refresh" viene ordinato al client di reindirizzare il dominio. Come questo avvenga, viene definito nell’attributo Content. Nell’esempio è previsto un reindirizzamento del dominio di destinazione www.esempio.it dopo 10 secondi.

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

Reindirizzamento tramite JavaScript

Una possibilità facile per il reindirizzamento del dominio lato client è offerta da JavaScript. Ma come nel caso del meta tag refresh dovresti utilizzare gli inoltri con JavaScript solo in via eccezionale perché il linguaggio di scripting per motivi di sicurezza potrebbe non essere supportato da tutti i browser. In più con i reindirizzamenti tramite JavaScript nascono problemi per i web crawler e gli utenti che hanno attivi dei componenti aggiuntivi per bloccare gli script. Il seguente codice indica un classico reindirizzamento del dominio con JavaScript:

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

Qui è rilevante soprattutto la riga 02. Nel codice di esempio viene utilizzato l’oggetto window.location per rimandare all’indirizzo web attuale. Il comando replace indica al browser di reindirizzare l’utente al dominio di destinazione definito tra parentesi www.esempio.it.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top