In Laravel 5 können Sie HTTPS für Ihre Anwendung mithilfe einer Middleware-Klasse erzwingen. So können Sie dies erreichen:
Middleware-Klasse:
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); } }
Middleware anwenden:
Der nächste Schritt ist um diese Middleware auf alle eingehenden Anfragen anzuwenden. Fügen Sie es in der Datei Kernel.php zum Array $middleware hinzu:
protected $middleware = [ // Existing middleware... // Custom middleware 'MyApp\Http\Middleware\HttpsProtocol', ];
Validierung der Produktionsumgebung:
Die bereitgestellte Middleware leitet alle HTTP-Anfragen an HTTPS weiter. Möglicherweise möchten Sie dieses Verhalten jedoch nur auf Produktionsumgebungen beschränken. Sie können dies tun, indem Sie die Anwendungsumgebung überprüfen:
if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); }
Überlegungen zu Cloudflare:
Wenn Sie Cloudflare verwenden, kann es zu einer Umleitungsschleife kommen, da Cloudflare weiterleitet Anfragen über HTTP. Um dies zu beheben, fügen Sie die folgende Zeile zu Ihrer Middleware hinzu:
$request->setTrustedProxies([$request->getClientIp()]);
Web Group (Laravel v5.3):
Anstatt sie der $middleware hinzuzufügen Array, Sie können es zur Webgruppe in Kernel.php hinzufügen:
protected $middlewareGroups = [ 'web' => [ // ... // Custom middleware 'MyApp\Http\Middleware\HttpsProtocol', ], ];
Denken Sie daran, dass die Webgruppe auf alle Routen von angewendet wird Standard.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie erzwinge ich HTTPS in Laravel 5 mithilfe von Middleware?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!