Un redirect serve per reindirizzare la navigazione da una pagina ad un’altra in modo automatico. Esistono diversi modi di effettuare un redirect e mi appresto a descriverne il più utile al fine di questa trattazione, prima però farò una panoramica su alcuni codici che utilizza il protocollo HTTP per far capire al nostro browser cosa sta accadendo chiamati appunto codici di stato. Per una panoramica più approfondita e completa rimando all’apposita pagina del W3C che descrive tutte le Definizioni degli Status Code mentre qui mi limiterò solo a descrivere lo status code di tipo 301.

Lo stato 301 indica uno spostamento permanente (o anche Permanent Move) del contenuto presso un altro indirizzo ed è considerato in definitiva il modo migliore per istruire i motori di ricerca ed i browser di tale situazione.

Come accennato nel titolo dell’articolo adesso tratterò diverse modalità per la messa in atto di un redirect.


Redirect via HTML

Questo si attua inserendo nell’intestazione della pagina web (quindi tra i tag <head> e </head>) un meta tag che indica il caricamento della stessa pagina e di indirizzare il browser verso un’altra pagina. Il meta tag in questione è:

<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.indirizzodidestinazione.com/percorso" />

Questo metodo di redirect è in assoluto il peggiore, quindi evitate di utilizzarlo.

Redirect via JavaScript

Consiste nell’inserire all’interno dei tag <script type=”text/javascript”> e </script> uno comando javascript che non farà altro che cambiare l’indirizzo corrente con quello specificato. Nella fattispecie si tratta del comando:

location.href='http://www.indirizzodidestinazione.com/percorso';

Anche questo metodo non ci consente di specificare lo Status Code necessario per cui non è consigliato.

Redirect via PHP

Questo è uno dei metodi più semplici e completi che permette di attuare un ottimo redirect e consiste nella creazione di una pagina PHP con all’interno il seguente codice:

< ?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.indirizzodidestinazione.com/percorso");
?>

Redirect via .htaccess

Questo metodo di redirect consiste nella creazione o modifica di un file .htaccess in modo che reindirizzi il browser tramite delle direttive di Apache. In particolare il codice da inserire in tale file è:

Redirect 301 / http://www.indirizzodidestinazione.com/percorso

dove il primo slash (il carattere “/” per intenderci) indica la pagina di provenienza che in questo caso è la root del nostro spazio

Redirect via Apache

Per eseguire un redirect direttamente tramite Apache è necessario cambiare delle direttive all’interno del file di configurazione del dominio stesso. L’unico inconveniente è che a meno che non siate voi stessi a gestire il server web è abbastanza difficile che chi di dovere vi ci faccia mettere mano (se fossi io il sysadmin eviterei…). In sostanza bisogna fare in modo che il server reindirizzi il traffico diretto ad una certa directory verso un’altra impostando un alias del tipo:

Alias /destinazione /percorso/interno/della/directory/di/destinazione

come configurare il demone Apache.

Se conoscete altri modi per effettuare un redirect commentate pure e descriveteli, sarò lieto di inserirli.

16 commenti
  1. Marcello
    Marcello dice:

    Un altro redirect si può fare tramite animazione flash..il problema dei redirect che non specificano lo status code e’ che i motori di ricerca possono interpretare le pagine come landing pages cioè pagine di spam che hanno come unica funzionalita’ quelle di indirizzare l’utente verso altre pagine con contenuti diversi.Ricordate sempre di effettuare un redirect 301 se trasferite il vostro sito su un altro dominio, altrimenti arriva l’altra penalizzazione: per duplicazione del contenuto 😛

    Rispondi
  2. Antonio Barba
    Antonio Barba dice:

    anche a mio avviso quello tramite htaccess è il più comodo… ma in alcuni casi non si può usare, ad esempio non è detto che il supporto htaccess sia garantito da tutti gli hosts, soprattutto quelli gratuiti..

    Rispondi
  3. Marco GRAZIA
    Marco GRAZIA dice:

    In realtà nessuno di questi è migliore, se qualcuno come il meta tag o il javascript sono da considerarsi obsoleti solo e soltanto perché i motori di ricerca li penalizzano, tutti gli altri possono considerarsi validi a tutti gli effetti ed equivalenti, dipende dal caso.
    Quello in Flash (che non ho capito come dovrebbe agire) è forse il più pericoloso perché presuppone che il client abbia il Flash abilitato e funzionante, mentre un motore di ricerca difficilmente lo leggerebbe.
    Forse il più rapido in termini di prestazioni è l’alias Apache, ma stiamo proprio grattando il fondo e comunque è il più difficile da realizzare perché bisogna avere la piena disponibilità del server.
    Gli altri due sono validi se: Non ho il supporto al PHP, ma posso agire sul file htaccess, altrimenti va bene in PHP.
    In PHP non ci sono controindicazioni ma tenete presente che comunque è un sistema di ripiego.
    Mandare un “falso” codice 301 per notificare ai motori di ricerca e agli utenti che la pagina cercata non si trova più lì deve sempre essere un ripiego temporaneo.
    Primo non puoi sapere se l’host dove hai inserito il redirect sarà attivo in eterno, eppoi credo che chiunque voglia essere raggiunto con un solo indirizzo, direttamente, senza dover passare da un altro host prima.
    Mettici anche che molti browser stanno seriamente bloccando i redirect dato che li considerano potenzialmente pericolosi per il phishing.
    Quindi fate il redirect ma mettetteci anche un bell’avviso di aggiornare i bookmark all’indirizzo (mettere il nuovo indirizzo), i motori di ricerca saranno i primi ad aggiornarsi 😉

    M.

    PS: scusate è il mio primo post, non voglio essere saccente, ma un po’ è il mio lavoro un po’ sto leggendo qua e là mentre scarico un ISO.

    Rispondi
  4. Antonio Barba
    Antonio Barba dice:

    Grazie per il tuo contributo, tranquillo non hai dato impressione di saccenza, piuttosto incoraggiamo anche gli altri membri della community a postare le loro puntualizzazioni e i loro commenti, purchè in modo costruttivo, proprio come hai fatto tu 😉

    Rispondi
  5. rosario
    rosario dice:

    ma se ho una pagina .html e apache non è supportato, l’unico modo per effettuare il redirect è via html o javascript, giusto?
    mi è appena successo questo, in quanto i motori puntano tutti alla pagina index.html, mentre adesso vorrei puntassero alla mia nuova pagina index.php.
    Ho quindi impostato il redirect html dalla pagina .html a quella .php

    Rispondi

Trackbacks & Pingbacks

  1. […] Redirect via HTML, Javascript, PHP, .htaccess, Apache Un redirect serve per reindirizzare la navigazione da una pagina ad un'altra in modo automatico. Esistono diversi modi di effettuare un redirect e mi appresto a descriverne il più utile al fine di questa trattazione, prima però farò una panoramica su alcuni codici che utilizza il protocollo HTTP per far capire al nostro browser cosa blog: Oscene.net | leggi l'articolo […]

  2. […] Redirect via HTML, Javascript, PHP, .htaccess, Apache Un redirect serve per reindirizzare la navigazione da una pagina ad un'altra in modo automatico. Esistono diversi modi di effettuare un redirect e mi appresto a descriverne il più utile al fine di questa trattazione, prima però farò una panoramica su alcuni codici che utilizza il protocollo HTTP per far capire al nostro browser cosa blog: Oscene.net | leggi l'articolo […]

  3. […] a vedere articolo: Redirect via HTML, Javascript, PHP, .htaccess, Apache « OScene.net … Articoli correlati: [PHP] Redirect | Il […]

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *