首頁 > 後端開發 > php教程 > 如何使用中介軟體在 Laravel 5 強制使用 HTTPS?

如何使用中介軟體在 Laravel 5 強制使用 HTTPS?

DDD
發布: 2024-12-12 13:39:10
原創
910 人瀏覽過

How to Force HTTPS in Laravel 5 Using Middleware?

使用中間件的 Laravel 5 HTTPS 重新導向

在 Laravel 5 中,您可以使用中間件類別為應用程式強制執行 HTTPS。以下是實現此目標的方法:

中間件類別:

namespace MyApp\Http\Middleware;

use Closure;

class HttpsProtocol
{

    public function handle($request, Closure $next)
    {
        if (!$request->secure()) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
    }
}
登入後複製

應用中間件:

下下一步是將此中間件套用至所有傳入請求。在Kernel.php 檔案中,將其新增至$middleware 陣列:

protected $middleware = [
    // Existing middleware...

    // Custom middleware
    'MyApp\Http\Middleware\HttpsProtocol',
];
登入後複製

生產環境驗證:

提供的中間件將所有HTTP 請求重件定向到HTTPS,但您可能只想將此行為限制在生產環境中。您可以透過檢查應用程式環境來做到這一點:

if (!$request->secure() && App::environment() === 'production') {
    return redirect()->secure($request->getRequestUri());
}
登入後複製

Cloudflare 注意事項:

如果您使用Cloudflare,您可能會遇到重新導向循環,因為Cloudflare 轉送使用HTTP 的請求。要解決此問題,請將以下行加入您的中間件:

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

Web Group (Laravel v5.3 ):

而不是將其添加到$middleware數組,您可以將其添加到Kernel.php 中的web群組中:

protected $middlewareGroups = [
    'web' => [
        // ...

        // Custom middleware
        'MyApp\Http\Middleware\HttpsProtocol',
    ],
];
登入後複製
記住預設情況下,網路群組會套用於所有路由。

附加說明:

    URL::forceScheme('https');不重定向,僅修改渲染連結中的方案。
  • 根據應用程式的託管設定調整環境檢查。
  • 確保為 Cloudflare 正確設定可信任代理程式。

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

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