Создание пользовательской страницы 404 в Laravel: подробное руководство

Метод 1: использование встроенного механизма обработки исключений
Laravel предоставляет обработчик исключений, который позволяет перехватывать и обрабатывать различные типы исключений, включая NotFoundHttpException. Чтобы создать собственную страницу 404 с помощью этого метода, выполните следующие действия:

Шаг 1. Откройте файл app/Exceptions/Handler.php.
Шаг 2. Найдите метод renderв классе Handler.
Шаг 3. Добавьте следующий фрагмент кода в метод render:

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
public function render($request, Throwable $exception)
{
    if ($exception instanceof NotFoundHttpException) {
        return response()->view('errors.404', [], 404);
    }
    return parent::render($request, $exception);
}

Шаг 4. Создайте новый файл шаблона Blade с именем 404.blade.phpв каталоге resources/views/errors/.
Шаг 5. Настройте содержимое 404.blade.phpдля создания собственной страницы ошибок.

Метод 2: использование резервного маршрута Laravel
Laravel позволяет вам определить резервный маршрут, который будет сопоставляться, когда другие маршруты не найдены. Эту функцию можно использовать для создания собственной страницы 404. Вот как:

Шаг 1. Откройте файл routes/web.php.
Шаг 2. Добавьте в конец файла следующий фрагмент кода:

Route::fallback(function () {
    return view('errors.404');
});

Шаг 3. Создайте новый файл шаблона Blade с именем 404.blade.phpв каталоге resources/views/errors/.
Шаг 4. Настройте содержимое 404.blade.phpфайл.

Метод 3: использование специального промежуточного программного обеспечения для обработки ошибок.
В этом методе мы создадим собственное промежуточное программное обеспечение, которое перехватывает запросы и проверяет, не найден ли запрошенный ресурс. Если да, то отобразится пользовательская страница 404. Вот как это сделать:

Шаг 1. Создайте новое промежуточное программное обеспечение, используя следующую команду в терминале:

php artisan make:middleware Custom404Middleware

Шаг 2. Откройте файл app/Http/Middleware/Custom404Middleware.php.
Шаг 3. Реализуйте метод handleс помощью следующего кода:

use Closure;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
public function handle($request, Closure $next)
{
    $response = $next($request);
    if ($response->status() === 404) {
        return response()->view('errors.404', [], 404);
    }
    return $response;
}

Шаг 4. Зарегистрируйте промежуточное программное обеспечение в файле app/Http/Kernel.php. Добавьте следующую строку в массив $middleware:

protected $middleware = [
    // ...
    \App\Http\Middleware\Custom404Middleware::class,
];

Шаг 5. Создайте новый файл шаблона Blade с именем 404.blade.phpв каталоге resources/views/errors/.
Шаг 6. Настройте содержимое 404.blade.phpфайл.