Maison > développement back-end > tutoriel php > Comment forcer HTTPS dans Laravel 5 à l'aide d'un middleware ?

Comment forcer HTTPS dans Laravel 5 à l'aide d'un middleware ?

DDD
Libérer: 2024-12-12 13:39:10
original
910 Les gens l'ont consulté

How to Force HTTPS in Laravel 5 Using Middleware?

Redirection HTTPS Laravel 5 à l'aide d'un middleware

Dans Laravel 5, vous pouvez appliquer HTTPS pour votre application à l'aide d'une classe Middleware. Voici comment y parvenir :

Classe de middleware :

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

Application du middleware :

L'étape suivante est pour appliquer ce Middleware à toutes les requêtes entrantes. Dans le fichier Kernel.php, ajoutez-le au tableau $middleware :

protected $middleware = [
    // Existing middleware...

    // Custom middleware
    'MyApp\Http\Middleware\HttpsProtocol',
];
Copier après la connexion

Validation de l'environnement de production :

Le middleware fourni redirige toutes les requêtes HTTP vers HTTPS, mais vous souhaiterez peut-être limiter ce comportement aux environnements de production uniquement. Vous pouvez le faire en vérifiant l'environnement de l'application :

if (!$request->secure() && App::environment() === 'production') {
    return redirect()->secure($request->getRequestUri());
}
Copier après la connexion

Considérations sur Cloudflare :

Si vous utilisez Cloudflare, vous pouvez rencontrer une boucle de redirection car Cloudflare transfère requêtes utilisant HTTP. Pour résoudre ce problème, ajoutez la ligne suivante à votre Middleware :

$request->setTrustedProxies([$request->getClientIp()]);
Copier après la connexion

Groupe Web (Laravel v5.3) :

Au lieu de l'ajouter au $middleware tableau, vous pouvez l'ajouter au groupe Web dans Kernel.php :

protected $middlewareGroups = [
    'web' => [
        // ...

        // Custom middleware
        'MyApp\Http\Middleware\HttpsProtocol',
    ],
];
Copier après la connexion

N'oubliez pas que le groupe Web est appliqué à toutes les routes par par défaut.

Remarques supplémentaires :

  • URL::forceScheme('https'); ne redirige pas mais modifie uniquement le schéma dans les liens rendus.
  • Ajustez la vérification de l'environnement en fonction de la configuration d'hébergement de votre application.
  • Assurez-vous que les proxys de confiance sont correctement définis pour Cloudflare.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal