在 Laravel 中,可以通过利用中间件类来在应用程序上强制使用 HTTPS。下面是一个示例实现:
namespace MyApp\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; class HttpsProtocol { public function handle($request, Closure $next) { if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); } return $next($request); } }
要激活此中间件,请将其添加到 Kernel.php 文件中的中间件组:
protected $middleware = [ // ... 'MyApp\Http\Middleware\HttpsProtocol' ];
默认情况下,应用 Web 中间件组到所有路由,因此无需进一步配置。
如果您使用 Cloudflare,您可能会遇到重定向循环。这是因为 Cloudflare 转发带有指示 HTTPS 的“X-Forwarded-Proto”标头的 HTTP 请求。要解决此问题,请将以下行添加到您的中间件中:
$request->setTrustedProxies([$request->getClientIp()]);
这信任 Cloudflare 提供的 IP 和标头,从而打破循环。
/h3>
以上是如何在 Laravel 应用程序中强制使用 HTTPS?的详细内容。更多信息请关注PHP中文网其他相关文章!