Heim > Backend-Entwicklung > PHP-Tutorial > Wie erzwinge ich HTTPS in Laravel 5 mithilfe von Middleware?

Wie erzwinge ich HTTPS in Laravel 5 mithilfe von Middleware?

DDD
Freigeben: 2024-12-12 13:39:10
Original
910 Leute haben es durchsucht

How to Force HTTPS in Laravel 5 Using Middleware?

Laravel 5 HTTPS-Umleitung mithilfe von Middleware

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

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',
];
Nach dem Login kopieren

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

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

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',
    ],
];
Nach dem Login kopieren

Denken Sie daran, dass die Webgruppe auf alle Routen von angewendet wird Standard.

Zusätzliche Hinweise:

  • URL::forceScheme('https'); leitet nicht um, sondern ändert nur das Schema in gerenderten Links.
  • Passen Sie die Umgebungsprüfung entsprechend dem Hosting-Setup Ihrer Anwendung an.
  • Stellen Sie sicher, dass vertrauenswürdige Proxys für Cloudflare korrekt eingestellt sind.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage