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

Comment forcer HTTPS dans les applications Laravel ?

Linda Hamilton
Libérer: 2024-12-11 15:57:14
original
1047 Les gens l'ont consulté

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); 
    }
}
Copier après la connexion

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

protected $middleware = [
    // ...
    'MyApp\Http\Middleware\HttpsProtocol'       
];
Copier après la connexion

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()]);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal