In Laravel kann das Erzwingen von HTTPS für Ihre Anwendung durch die Verwendung einer Middleware-Klasse erreicht werden. Hier ist eine Beispielimplementierung:
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); } }
Um diese Middleware zu aktivieren, fügen Sie sie der Middleware-Gruppe in der Datei Kernel.php hinzu:
protected $middleware = [ // ... 'MyApp\Http\Middleware\HttpsProtocol' ];
Standardmäßig wird die Web-Middleware-Gruppe angewendet auf alle Routen, daher ist keine weitere Konfiguration erforderlich.
Wenn Sie Cloudflare verwenden, kann es zu einer Umleitungsschleife kommen. Dies liegt daran, dass Cloudflare HTTP-Anfragen mit einem „X-Forwarded-Proto“-Header weiterleitet, der HTTPS angibt. Um dieses Problem zu beheben, fügen Sie die folgende Zeile zu Ihrer Middleware hinzu:
$request->setTrustedProxies([$request->getClientIp()]);
Dies vertraut der von Cloudflare bereitgestellten IP und dem Header und unterbricht die Schleife.
Für Laravel-Versionen ab 5.3: Fügen Sie die Middleware-Klasse zum „Web“ hinzu. Middleware-Gruppe in der Datei Kernel.php.
Für Laravel-Versionen ab 5.7:
Das obige ist der detaillierte Inhalt vonWie erzwinge ich HTTPS in Laravel-Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!