Laravel 8 中的自定义路由仅侦听 HTTP 请求

Custom route in Laravel 8 to listen to HTTP request only

我的应用程序在端口 443 的 HTTPS 协议上稳定运行,但我使用的是 AWS EBS,其中运行状况检查始终在端口 80 的 HTTP 上执行。我创建了中间件以在所有路由上强制执行 HTTPS,但是当我启用它,AWS 上的健康检查失败,但网站运行正常。

HTTPsForce 中间件句柄函数:

public function handle($request, Closure $next)
{

    if (!$request->secure() && app()->environment('production')) {
        return redirect()->secure($request->getRequestUri());
    }
    
    return $next($request);
}

我如何创建一个自定义路由,它始终使用 HTTP 协议侦听端口 80,以便在我的整个网站使用 HTTPS 时,AWS 的运行状况检查将在 HTTP 路由上执行?

您可以在特定路由上排除中间件:

Route::get('/', [Controller::class, 'action'])->withoutMiddleware([Middleware::class]);

https://laravel.com/docs/9.x/middleware#excluding-middleware