web-dev-qa-db-fra.com

Redirection Symfony vers une URL externe

Comment puis-je rediriger vers une URL externe dans une action symfony?

J'ai essayé ces options:

1- return $this->redirect("www.example.com");

Erreur: aucun itinéraire trouvé pour "GET /www.example.com"

2- $this->redirect("www.example.com");

Erreur: le contrôleur doit renvoyer une réponse (donnée nulle).

3- $response = new Response();
$response->headers->set("Location","www.example.com");
return $response

Pas d'erreur mais page vierge!

18
Saman Mohamadi

La réponse à votre question est dans le livre officiel de Symfony.

http://symfony.com/doc/current/book/controller.html#redirecting

public function indexAction()
{
    return $this->redirect('http://stackoverflow.com');
    // return $this->redirect('http://stackoverflow.com', 301); - for changing HTTP status code from 302 Found to 301 Moved Permanently
}

Quel est le "URL"? Avez-vous vraiment défini un itinéraire pour ce modèle? Sinon, l'erreur non trouvée est absolument correcte. Si vous souhaitez rediriger vers un site externe, utilisez toujours le format URL absolu.

31
kba

Vous devez utiliser RedirectResponse au lieu de Response

use Symfony\Component\HttpFoundation\RedirectResponse;

Et alors:

return new RedirectResponse('http://your.location.com');
24
Artamiel