Maison >développement back-end >tutoriel php >Comment forcer HTTPS dans les applications Laravel ?

Comment forcer HTTPS dans les applications Laravel ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 15:57:14995parcourir

How to Force HTTPS in Laravel Applications?

Redirection vers HTTPS dans Laravel

Dans Laravel, forcer HTTPS sur votre application peut être obtenu en utilisant une classe Middleware. Voici un exemple d'implémentation :

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); 
    }
}

Pour activer ce middleware, ajoutez-le au groupe middleware dans le fichier Kernel.php :

protected $middleware = [
    // ...
    'MyApp\Http\Middleware\HttpsProtocol'       
];

Par défaut, le groupe middleware web est appliqué à toutes les routes, aucune configuration supplémentaire n'est donc nécessaire.

Cloudflare Considérations

Si vous utilisez Cloudflare, vous pouvez rencontrer une boucle de redirection. En effet, Cloudflare transmet les requêtes HTTP avec un en-tête « X-Forwarded-Proto » indiquant HTTPS. Pour résoudre ce problème, ajoutez la ligne suivante à votre middleware :

$request->setTrustedProxies([$request->getClientIp()]);

Cela fait confiance à l'adresse IP et à l'en-tête fournis par Cloudflare, rompant ainsi la boucle.

Mises à jour pour les versions de Laravel< /h3>

Pour les versions Laravel 5.3 et suivantes : ajoutez la classe middleware à la Groupe middleware "web" dans le fichier Kernel.php.

Pour les versions de Laravel 5.7 et suivantes :

  • Utilisez App::environment() au lieu de env('APP_ENV') pour l'environnement -vérifications basées sur.
  • URL::forceScheme('https') ne redirige pas mais construit simplement des liens avec HTTPS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn