Для редиректа сайта Laravel на HTTPS через middleware, вы можете создать специальный middleware, который будет проверять, использует ли текущий запрос протокол HTTPS, и если нет, перенаправлять пользователя на HTTPS-версию сайта. Это обеспечивает безопасность данных пользователя, так как HTTPS шифрует данные, передаваемые между клиентом и сервером.

Шаг 1: Создание Middleware

Сначала создайте новый middleware с помощью команды Artisan:

php artisan make:middleware RedirectToHttps

Это создаст новый файл middleware в app/Http/Middleware/RedirectToHttps.php.

Шаг 2: Реализация Middleware

Откройте созданный файл middleware и реализуйте логику перенаправления. В методе handle проверьте, использует ли текущий запрос протокол HTTPS, и если нет, выполните редирект на HTTPS-версию сайта.

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class RedirectToHttps
{
    /**
     * Обработка входящего запроса.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        if (!$request->secure() && app()->environment('production')) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
    }
}

В этом примере, если запрос не использует HTTPS и приложение работает в продакшн-окружении (app()->environment('production')), происходит редирект на HTTPS-версию сайта.

Шаг 3: Регистрация Middleware

Чтобы использовать ваш middleware, вам нужно зарегистрировать его. Это можно сделать в файле app/Http/Kernel.php в массиве $middleware.

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

Или, если вы хотите применить middleware только к определенным маршрутам, вы можете добавить его в массив $routeMiddleware и затем применить его к конкретным маршрутам в файле маршрутов.

protected $routeMiddleware = [
    // ...
    'https' => \App\Http\Middleware\RedirectToHttps::class,
];

И затем в файле маршрутов:

Route::get('/example', 'ExampleController@index')->middleware('https');

Заключение

Создание и использование middleware для редиректа на HTTPS в Laravel позволяет обеспечить безопасность данных пользователя, перенаправляя все HTTP-запросы на HTTPS-версию сайта. Это особенно важно для сайтов, обрабатывающих личную информацию или финансовые данные.