Как сделать ЧПУ с регулярным выражением Yii?

Для реализации ЧПУ (Человекопонятных URL) с использованием регулярных выражений в Yii можно воспользоваться настройкой маршрутизации в файле конфигурации приложения (config/main.php или config/main.php).

Для начала, убедитесь, что у вас включен компонент URL-менеджера в файле конфигурации, и для этого в components должна быть строка следующего вида:

'urlManager' => [
    'class' => 'yiiwebUrlManager',
    // другие настройки URL-менеджера...
],

После этого вы можете использовать метод addRules в компоненте URL-менеджера для определения правил маршрутизации с помощью регулярных выражений. Например, добавим правило, чтобы страница /news/123 сопоставлялась с действием news/view и параметром id=123:

'components' => [
    'urlManager' => [
        'class' => 'yiiwebUrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'news/<id:d+>' => 'news/view',
        ],
    ],
],

Здесь <id:d+> задает шаблон для параметра id: только цифры (d+).

Можно добавить несколько правил для разных маршрутов. Правила будут проверяться в порядке их объявления, поэтому следует помещать более специфичные правила перед более общими.

После настройки маршрутов, Yii будет автоматически преобразовывать входной URL в понятный формат для приложения. Вы также можете использовать метод createUrl для создания ЧПУ URL в коде:

echo Yii::$app->urlManager->createUrl(['news/view', 'id' => 123]);

Это создаст URL вида /news/123.

Надеюсь, что эта детальная информация ответила на ваш вопрос о том, как реализовать ЧПУ с использованием регулярных выражений в Yii. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать!