Как привести ссылки в чпу вид YII2?

В Yii2 для приведения ссылок к ЧПУ виду (Человекопонятный URL) вам нужно выполнить несколько шагов.

Шаг 1: Настройка компонента URL Manager
Сначала нужно настроить компонент URL Manager, который будет отвечать за обработку и преобразование URL. Откройте файл config/web.php и найдите секцию components. Добавьте или измените следующий код:

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            // здесь можно добавить дополнительные правила для преобразования URL
        ],
    ],
    // остальные компоненты
],

enablePrettyUrl устанавливает включен ли режим ЧПУ. Если это значение установлено на true, Yii2 будет использовать ЧПУ для преобразования URL. showScriptName устанавливает, будет ли имя сценария (например, index.php) отображаться в URL. Установите этот параметр в false, чтобы скрыть имя сценария.

Вы также можете настроить дополнительные правила преобразования URL в секции rules. Например, для преобразования URL /site/about в /about, вы можете добавить следующее правило:

'rules' => [
    'about' => 'site/about',
    // другие правила
],

Шаг 2: Использование ЧПУ в контроллерах и представлениях
После настройки компонента URL Manager вы можете использовать ЧПУ в контроллерах и представлениях. Для создания ссылок в ЧПУ виде, используйте метод createUrl() или createAbsoluteUrl() класса Url.

use yiihelpersUrl;

// создание ссылки в ЧПУ виде
$url = Url::to(['site/about']);

// создание абсолютной ссылки в ЧПУ виде
$absoluteUrl = Url::to(['site/about'], true);

// использование в представлении
<a href="<?= Url::to(['site/about']) ?>">About</a>

Метод createUrl() принимает массив с параметрами, где первый элемент - это маршрут к контроллеру и действию, а остальные элементы - дополнительные параметры. Например, ['site/about', 'id' => 1] преобразуется в /site/about?id=1.

Метод createAbsoluteUrl() создает абсолютную ссылку, включая доменное имя и протокол.

Шаг 3: Настройка .htaccess (для серверов Apache)
Если вы используете сервер Apache, вам также потребуется настроить файл .htaccess для обработки ЧПУ. Создайте файл .htaccess в корне вашего проекта и добавьте в него следующий код:

Options +FollowSymLinks
RewriteEngine On

# Если директория или файл существует, использовать его
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Переадресация всех запросов к файлу index.php
RewriteRule . index.php

Этот файл .htaccess позволит серверу Apache перенаправлять все запросы на файл index.php. Благодаря этому, Yii2 будет обрабатывать все URL через фронт-контроллер.

После всех этих шагов, ваши ссылки должны автоматически приводиться в ЧПУ вид.