Как задать 404 страницу, когда прописаны правила в urlManager?

Чтобы задать страницу 404 в Yii при использовании правил urlManager, необходимо выполнить следующие шаги:

1. Откройте файл конфигурации веб-приложения (обычно это файл config/web.php или config/main.php).

2. Найдите секцию components и добавьте или измените конфигурацию компонента urlManager. Вам понадобится добавить правило, которое будет указывать, как обрабатывать несуществующие URL-адреса:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        // ... ваши текущие правила ...
        '<controller:w+>/<action:w+>'=>'<controller>/<action>',
        // правило для обработки несуществующих URL
        '<url:.*>' => 'site/error', // где 'site/error' - это контроллер и действие для страницы 404
    ],
],

3. Создайте контроллер SiteController (если его еще нет) или выберите существующий контроллер, который будет обрабатывать ошибку 404. В этом контроллере вам нужно создать действие actionError, которое будет отображать страницу ошибки. Например:

public function actionError()
{
    $this->layout = 'error'; // необязательно, если вы хотите использовать отдельный макет для страницы ошибки
    return $this->render('error');
}

4. Создайте представление для страницы ошибки в папке views/site/error.php. Это представление должно содержать сообщение об ошибке и любую другую информацию, которую вы хотите отображать. Например:

<h1>Ошибка 404</h1>
<p>Запрошенная страница не найдена.</p>

5. Теперь, когда вы открываете несуществующую страницу на вашем сайте, Yii будет использовать новое правило '<url:.*>' => 'site/error' и отображать страницу ошибки, которую вы определили в представлении views/site/error.php.

Вот и все! Теперь вы задали страницу 404, когда прописаны правила в urlManager в Yii.