在 Laravel 5 中,实现 HTTPS 重定向涉及利用中间件或事件侦听器。中间件是一种更干净、更直接的方法。
创建中间件类:
namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\App; class HttpsProtocol { public function handle(Request $request, Closure $next) { if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); } return $next($request); } }
在 Kernel.php 文件中注册中间件:
protected $middleware = [ // Other middleware 'App\Http\Middleware\HttpsProtocol', ];
如果使用Cloudflare,您可能会遇到重定向循环。将以下行添加到您的中间件中:
$request->setTrustedProxies([$request->getClientIp()]);
这信任 CloudFlare 发送的标头,防止重定向循环。
在以前的版本中Laravel, env('APP_ENV') === '生产'被使用。在 Laravel 5.7 及更高版本中,将其替换为 App::environment() === '生产'。
使用中间件或事件侦听器实现 HTTPS 重定向允许您强制 HTTPS 连接你的 Laravel 应用程序。如有必要,请记住考虑 Cloudflare 设置并相应地调整环境敏感重定向。
以上是如何在 Laravel 5 中重定向到 HTTPS?的详细内容。更多信息请关注PHP中文网其他相关文章!