Перейти к основному содержимому

Маршрутизация и URL

Введение

Маршрутизация (routing) определяет, какие запросы перенаправляются к какому контроллеру в зависимости от URL, по которому они были отправлены. Поэтому маршрутизация является неотъемлемой частью любого веб‑приложения с архитектурой MVC.

Помимо чисто технического аспекта (какой контроллер вызывается), существуют и другие моменты, такие как структура и иерархия URL, SEO и мультидоменные сайты, которые нужно учитывать вместе с маршрутизацией.

Знание того, как работает маршрутизация в Pimcore/Symfony, необходимо, чтобы понять, как можно реализовать приложение и как фактически работают маршруты. Технически весь процесс маршрутизации основан на механизме маршрутизации Symfony. В дополнение к маршрутам по умолчанию, предоставляемым Symfony (которые, конечно, также используются), Pimcore обладает некоторыми специальными возможностями маршрутизации для документов, пользовательских маршрутов, поддержки мультисайтов и перенаправлений.

Маршрутизация в Pimcore

В Pimcore существует несколько способов доступа к контроллерам. Эти маршруты обрабатываются в определённом порядке приоритета, как описано ниже.

1. Системные / Symfony‑маршруты:

Pimcore определяет несколько системных маршрутов, необходимых для базовой функциональности Pimcore, таких как интерфейс администратора, а также могут быть другие маршруты, предоставляемые пользовательскими бандлами. Это обычные маршруты Symfony, и они имеют наивысший приоритет.

Чтобы получить список всех настроенных маршрутов Symfony, используйте отладчик роутера Symfony в командной строке: ./bin/console debug:router

2. Перенаправления с приоритетом 99:

Перенаправления (redirects) с приоритетом 99 обрабатываются вторыми по приоритету. Подробности см. в разделе Перенаправления.

3. Документы Pimcore и «красивые» URL:

Путь документа Pimcore также определяет его публичный URL. В дополнение к пути для отдельных документов могут быть заданы так называемые «pretty URLs» (красивые URL). Путь документа и красивые URL обрабатываются третьими по приоритету. Подробности см. в разделе Документы и красивые URL.

4. URL Slug для объектов данных

С помощью специального типа данных URL Slug можно задавать URL для объектов данных. Они должны быть уникальными и оцениваются в четвёртом по приоритету порядке для текущего сайта. Подробности см. в разделе URL Slug.

5. Статические маршруты / Пользовательские маршруты:

Когда в приложении есть функциональность, для которой документ Pimcore не требуется (например, списки продуктов, страницы деталей, страницы корзины или процесс оформления заказа и т. п.), пользовательские маршруты позволяют задать шаблоны URL, которые будут направлены к конкретным контроллерам. Пользовательские маршруты обрабатываются пятыми по приоритету. Подробности см. в разделе Пользовательские маршруты.

6. Перенаправления (редиректы):

Все перенаправления с приоритетом ниже 99 обрабатываются шестыми по приоритету и также упорядочиваются в соответствии с их настроенным приоритетом. Подробности см. в разделе Перенаправления.

Мультидоменные сайты

Процесс маршрутизации также поддерживает мультидоменные сайты. Подробности см. в разделе Работа с сайтами.


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.