В Yii2 для построения правил ЧПУ (Человекопонятных URL) используется механизм маршрутизации. Маршрутизация - это процесс преобразования входящего URL-адреса в соответствующий контроллер и действие в Yii2.
Создание правила ЧПУ в Yii2 включает в себя несколько шагов:
Шаг 1: Настройка файла конфигурации данного приложения
Откройте файл config/web.php (или config/main.php для приложений консоли) вашего приложения и найдите массив 'components'. Добавьте следующий код в этот массив:
'components' => [ ... 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ // здесь добавляем правила для ЧПУ ], ], ... ],
'enablePrettyUrl' устанавливает флаг разрешения ЧПУ, тогда как 'showScriptName' определяет необходимость показывать имя файла скрипта в URL. При установке значения 'false' для 'showScriptName', имя файла скрипта (index.php) будет исключено из ЧПУ.
Шаг 2: Добавление правил ЧПУ
Теперь вы можете добавить свои собственные правила маршрутизации в массив 'rules' в компоненте 'urlManager'. Есть несколько способов добавления правил:
- Статические правила:
Наиболее простым способом добавления статического правила ЧПУ является создание пары ключ-значение в массиве 'rules', где ключ указывает на URL-адрес, а значение - на соответствующий контроллер и действие.
'rules' => [ 'about' => 'site/about', 'contact' => 'site/contact', ],
В этом примере, при обращении к URL-адресу /about, будет вызвано действие 'about' в контроллере 'site'.
- Динамические правила:
Динамические правила позволяют передавать переменные в URL. Вы можете использовать регулярные выражения для определения шаблонов URL с переменными и указать, какие параметры будут переданы в действие контроллера.
'rules' => [ 'post/<id:d+>' => 'blog/post', 'page/<slug:[w-]+>' => 'page/view', ],
В этом примере, при обращении к URL-адресу /post/123 будет вызвано действие 'blog/post' с параметром id=123, а при обращении к URL-адресу /page/about-us будет вызвано действие 'page/view' с параметром slug='about-us'.
Есть и другие возможности и варианты настройки маршрутизации в Yii2. Вы можете использовать модули для добавления дополнительных правил ЧПУ, указывать дополнительные параметры, использовать разные форматы URL и т.д.
В целом, в Yii2 построение правил ЧПУ является гибким и мощным инструментом, который позволяет легко настроить структуру URL-адресов в вашем приложении.