在 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', ], ];
附加說明:
以上是如何使用中介軟體在 Laravel 5 強制使用 HTTPS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!