yaleksandr89
@yaleksandr89
PHP developer

Как создать универсальный маршрут для редиректа на нужную локаль в Symfony?

Здравствуйте.

Хотелось бы уточнить, возможно ли реализовать "универсальный маршрут для редиректа" с учетом выбранной локализации. Немного конкретики? на сайте реализована переключение локал. Маршруты выглядят примерно: domain/{_locale} /...

Пытаюсь предусмотреть ситуацию, когда случайно посетитель не укажет локаль в адресной строке, то есть попытается перейти не по site.com/en, а по site.com/. Такую ситуацию удалось пофиксить созданием такого маршрута:
front_index:
    path: /
    defaults:
      _controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction
      path: '/%locale%'
      permanent: true

Но вот в случае попытке перейти на страницу site.com/page-1, а не site.com/en/page-1 вылетает закономерное исключение No route found for "GET site.com/page-1". Я знаю, что при указание необязательных параметров можно использовать регулярные выражения (пример из офф. доки):
blog_list:
    path:       /blog/{page<\d+>}
    controller: App\Controller\BlogController::list

Можно ли что-то подобное реализовать с маршрутом где нет необязательных параметров? Вроде этого:
front_index:
    path: /<.+>
    defaults:
      _controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction
      path: '/%locale%'
      permanent: true


Сходу решения не нашел( Буду признателен за подсказку.
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы