首頁 > 後端開發 > php教程 > 如何在 Laravel 應用程式中強制使用 HTTPS?

如何在 Laravel 應用程式中強制使用 HTTPS?

Linda Hamilton
發布: 2024-12-11 15:57:14
原創
993 人瀏覽過

How to Force HTTPS in Laravel Applications?

在 Laravel 中重定向到 HTTPS

在 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,您可能會遇到重新導向循環。這是因為 Cloudflare 轉送帶有指示 HTTPS 的「X-Forwarded-Proto」標頭的 HTTP 請求。要解決此問題,請將以下行新增至您的中介軟體:

$request->setTrustedProxies([$request->getClientIp()]);
登入後複製

這信任 Cloudflare 提供的 IP 和標頭,從而打破循環。

Laravel 版本更新

Laravel 版本更新

/h3>

    對於Laravel 版本5.3 及以上:將中間件類新增到Kernel.php 檔案中的「web」中間件組。
  • 對於 Laravel 版本 5.7 及以上:
使用 App::environment() 而不是 env('APP_ENV') 作為環境基於檢查。 URL::forceScheme('https') 不會重定向,而只是建構連結HTTPS。

以上是如何在 Laravel 應用程式中強制使用 HTTPS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板