在 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中文網其他相關文章!