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
我的应用程序在端口 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