Heim > Backend-Entwicklung > PHP-Tutorial > Wie erzwinge ich HTTPS in Laravel-Anwendungen?

Wie erzwinge ich HTTPS in Laravel-Anwendungen?

Linda Hamilton
Freigeben: 2024-12-11 15:57:14
Original
1047 Leute haben es durchsucht

How to Force HTTPS in Laravel Applications?

Weiterleitung zu HTTPS in Laravel

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); 
    }
}
Nach dem Login kopieren

Um diese Middleware zu aktivieren, fügen Sie sie der Middleware-Gruppe in der Datei Kernel.php hinzu:

protected $middleware = [
    // ...
    'MyApp\Http\Middleware\HttpsProtocol'       
];
Nach dem Login kopieren

Standardmäßig wird die Web-Middleware-Gruppe angewendet auf alle Routen, daher ist keine weitere Konfiguration erforderlich.

Cloudflare Überlegungen

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()]);
Nach dem Login kopieren

Dies vertraut der von Cloudflare bereitgestellten IP und dem Header und unterbricht die Schleife.

Updates für Laravel-Versionen< /h3>

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:

  • Verwenden Sie App::environment() anstelle von env('APP_ENV') für umgebungsbasierte Überprüfungen .
  • URL::forceScheme('https') leitet nicht um, sondern erstellt lediglich Links mit HTTPS.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage