Skip to content


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 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.

Be Sociable, Share!

Posted in Tips&Tricks.

Tagged with , , , , , , , , , , , .


22 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Marcello says

    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 :P

  2. Salvatore Barbera says

    @Marcello: grazie per l’intervento sicuramente sarà più che utile a molti ;)

  3. Luca says

    A mio avviso il migliore è quello via htaccess..

  4. Antonio Barba says

    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..

  5. Marco GRAZIA says

    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.

  6. Antonio Barba says

    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 ;)

  7. annarita says

    Ciao Antonio, anche se non ci sentiamo da tempo non mi sono scordata di te!;)

    Affettuosi auguri di Buone Feste e Sereno Natale.

    Un abbraccio
    annarita:)

  8. Salvatore Barbera says

    ciao annarita, penso di parlare a nome di entrambi dicendoti che ricambiamo con affetto…

    buon lavoro :)

  9. annarita says

    Salvatore! Ciao:) Ho un bel ricordo della tua persona…

    Un abbraccio anche a te:)

    Speriamo a presto.

    annarita

  10. rosario says

    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

  11. Salvatore Barbera says

    se cancelli la pagina index.html si dovrebbe venire reindirizzati automaticamente alla index.php

  12. Fobos says

    Basta eliminare la vecchia pagina con estensione .html o .htm, la pagina .php viene poi riconosciuta di default.

    Saluti :D

  13. les privat says

    Good article! We are linking to this great content
    on our website. Keep up the good writing.

  14. Realizzazione Siti web Bergamo says

    Thank you very much for all of your resources, you are really helping us.

  15. les privat says

    Pengalihan lain dapat dilakukan melalui masalah flash..il animasi dari pengalihan yang tidak menentukan kode status dan ‘bahwa mesin pencari dapat menafsirkan halaman sebagai halaman arahan yang laman spam yang hanya berfungsi’ yang untuk mengatasi ‘ pengguna ke halaman lain dengan lebih banyak dan melakukan isi redirect diversi.Ricordate 301 jika Anda mentransfer situs Anda ke domain lain, atau mendapatkan yang lain

  16. Hannelore says

    A well-planned and nicely-balanced hypothyroidism eating
    regimen that features sources of iodine helps scale back the signs and symptoms that a person experiences
    from low levels of thyroid hormones.

    • guru les privat says

      The purpose of the function is the transfer redirect url address of the destination url address of visitors to our new blog or a blog we want to make the transfer. This is actually a continuation of the tutorial How to Make a Blog Refresh Securities but has a different function. like Guru les private ke rumah di jakarta Redirect function is intended for someone who replace the old blog blog do not want to be reactivated or you can also write a message (with a few seconds) and then automatically including the switch to the new url.

  17. Wanker says

    Wow, that’s what I was seeking for, what a information! existing here at this blog, thanks admin of this
    web site.

Continuing the Discussion

  1. Redirect via HTML, Javascript, PHP, .htaccess, Apache « OScene.net … linked to this post on 1 February 2009

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

  2. Notizie dai blog su Redirect 301 .htaccess: la redirezione 301 lato server linked to this post on 11 May 2010

    […] 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. Notizie dai blog su Redirect dei nomi di dominio con Apache linked to this post on 19 July 2010

    […] 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 […]



Some HTML is OK

or, reply to this post via trackback.