Come effettuare un redirect in PHP? Innanzitutto “Redirect” significa reindirizzamento, cioè quando accedendo a una risorsa online si viene automaticamente inoltrati verso un’altra.

Fare un redirect con PHP

Fare un redirect in PHP è molto semplice: è sufficiente utilizzare la funzione header() di PHP. A questa funzione passiamo come unico argomento una stringa composta dal nome dell’header “Location” e il suo valore (l’indirizzo a cui si vuole inoltrare l’utente), uniti dal separatore :.

Vediamo un esempio:

<?php
   header('Location: http://www.sitoweb.com/nuova-pagina.php') ;
?>

Questo codice può essere eseguito in qualsiasi parte dello script, a meno che non sia già stato inviato qualche output al client: in tal caso PHP genererà un errore.

L’esempio più comune è quando si inserisce dell’html prima del tag <?php che contiene l’istruzione di redirect, come mostrato in questo esempio:

<html>
<?php
/* Questo genera un errore. Vedi che l'output è
 * sopra, prima che venga chiamata la funzione header() */
header('Location: http://www.example.com/');
exit;
?>

In realtà, per essere precisi, questo non riguarda solo il reindirizzamento, ma qualsiasi utilizzo della funzione header() come descritto nella documentazione ufficiale.

Come effettuare un redirect PHP con Laravel

Laravel offre, tra i suoi numerosi helper, la funzione redirect() alla quale si può passare un argomento con l’indirizzo al quale si vuole reindirizzare oppure, nel caso di utilizzo di named routes, si può usare la funzione route() con il nome della route come argomento.

Ecco un esempio preso dalla documentazione ufficiale Laravel:

return redirect('/home');

return redirect()->route('route.name');

Redirect 301

Quando si fa un redirect? Lo si fa ad esempio, nel caso più frequente, per eliminare un 404, ovverosia una pagina rotta all’interno del sito. Tipico esempio è quando un link non porta da nessuna pagina, come quello di un eCommerce quando un prodotto è esaurito.

Google vede queste pagine come degli “errori” e dunque tende a penalizzare il nostro sito: si applica dunque un redirect 301 per ripristinare la situazione e per reindirizzare queste pagine che non portano da nessuna parte verso altre pagine sempre del nostro stesso sito. Quando il sito è stato realizzato in PHP, si fa un redirect PHP, “in gergo come direbbe un SEO Specialist”…si fa un “301”.