Il redirectig ci permette di reindirizzare il browser verso una nuova pagina.

In PHP classico utilizziamo:


// redirect verso pagina interna
header("location: /nuova-pagina.php");
exit; // serve per interrompere lo script dopo il cambio di pagina o PHP darà ERRORE

// redirect verso una risorsa esterna al sito
header("location: http://www.sito.it/pagina.php");
exit;

In Symfony utilizzeremo invece:


public function indexAction()
{
    // la funzione fa qualcosa

    // redirect externally
    return $this->redirect('http://symfony.com/doc');

    // la parte qui sotto non verrà eseguita perchè ho fatto return
}

In symfony invocheremo i metodi:

redirect(): per i link esterni
redirectToRoute(): per le pagine interne definite da @Route


public function indexAction()
{
    // redirect to the "homepage" route
    return $this->redirectToRoute('homepage');

    // do a permanent - 301 redirect - Moved Permanently
    // consente di spostare un dominio o una pagina ad un altro indirizzo 
    // senza perdere il potere e il posizionamento acquisito dalla vecchia pagina.
    return $this->redirectToRoute('homepage', array(), 301);

    // redirect to a route with parameters
    return $this->redirectToRoute('blog_show', array('slug' => 'my-page'));

    // redirect externally
    return $this->redirect('http://symfony.com/doc');
}

Bibliografia:
symfony.com/doc/current/controller.html