Realizzare un redirect in php

La procedura di realizzazione di un redirect manuale in PHP ad una determinata pagina è estremamente semplice, bisogna però fare attenzione ad alcuni particolari che possono essere pericolosi e cambiare completamente l’effetto che vogliamo ottenere.

Ecco come dobbiamo impostare il nostro codice per ottenere un redirect

[code]
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: /nuova-pagina.php");
exit();

//resto del codide
//…
?>
[/code]

Analizziamo il codice appena scritto:

Le due funzioni header inviano le informazioni nell’intestazione standard HTTP riconoscibile da qualsiasi applicazione progettata per interrogare la pagina web, ossia i Browser e gli spider (detti anche client web), la prima riga invia lo status da segnalare al software, in questo un codice stato 301 per effettuare un reindirizzamento permanente nello standard HTTP 1.1, la seconda riga di header invia con la funzione Location: la destinazione di questo reindirizzamento, che sarebbe appunto la nuova pagina dove sarà rimandato il browser (nel caso fosse un utente) oppure lo spider (nel caso di Googlebot).

La funzione exit() serve per stoppare l’interprete PHP e fare in modo che non venga eseguito il resto del codice presente nel nostro file, naturalmente va omessa se nel nostor file non ci sono altre righe di codice.

Per finire alcuni esempi di utilizzo della funzione header di PHP:

[code]
// La pagina richiesta esiste e funziona
header(‘HTTP/1.1 200 OK’);

// LA pagina non è stata trovata:
header(‘HTTP/1.1 404 Not Found’);

// La pagina è protetta:
header(‘HTTP/1.1 403 Forbidden’);

// La pagina è stata spostata, fondamentale per avvisare gli spider che l’url è cambiato
header(‘HTTP/1.1 301 Moved Permanently’);

// Errore Interno del server
header(‘HTTP/1.1 500 Internal Server Error’);

// Reindirizzare i Browser ad un nuovo URL
header(‘Location: http://www.example.org/’);

// Reindirizzare con un ritardo di 10 secondi:
header(‘Refresh: 10; url=http://www.example.org/’);
print ‘Attenzione: fra 10 secondi sarai reindirizzato’;

// Segnalare la lingua del conenuto (it = Italiano)
header(‘Content-language: it’);

// Avvisa il browser che il contenuto non è cambiato dalla precedente visita
header(‘HTTP/1.1 304 Not Modified’);
[/code]

4/5 - (1 vote)