Перенаправление (редирект)
Перенаправление на указанную страницу
Перенаправить на указанную страницу можно через метод $this->redirect()
.
# src/Controller/PostsController.php use Symfony\Component\HttpFoundation\RedirectResponse; public function index() { return $this->redirect('url'); }
По умолчанию, перенаправление возвращает статус 302. Если идёт перенаправление со старого адреса страницы на новый, то рекомендуется указывать статус 301.
return $this->redirect('url', 301);
Постоянные перенаправления рекомендуется указывать в настройках веб-сервера, т.к. перенаправление будет происходить сразу, без загрузки текущей страницы.
Перенаправление по имени страницы
При создании страницы, можно указывать её имя.
/** @Route("/posts/", name="posts_index") **/ public function index() { // код }
Через метод $this->redirectToRoute()
можно делать перенаправление, указывая имя страницы.
# src/Controller/PostsController.php use Symfony\Component\HttpFoundation\RedirectResponse; public function index() { // 1-ый способ return $this->redirectToRoute('posts_index'); // 2-ой способ (с параметрами) return $this->redirectToRoute('posts_view', ['id' => 15]); }
По умолчанию метод $this->redirectToRoute()
возвращает код 302. Указать статус страницы 301 можно через третий параметр.
return $this->redirectToRoute('posts_index', [], 301); return $this->redirectToRoute('posts_view', ['id' => 15], 301);
Авторизуйтесь, чтобы добавлять комментарии