Maison >développement back-end >tutoriel php >Comment rediriger vers HTTPS dans Laravel 5 ?

Comment rediriger vers HTTPS dans Laravel 5 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 20:11:18600parcourir

How to Redirect to HTTPS in Laravel 5?

Laravel 5 - Redirection vers HTTPS

Dans Laravel 5, la mise en œuvre de la redirection HTTPS implique l'utilisation soit d'un middleware, soit d'un écouteur d'événements. Un middleware est une approche plus propre et plus simple.

Utiliser un middleware

Créez une classe de middleware :

    namespace App\Http\Middleware;

    use Closure;
    use Illuminate\Support\Facades\Request;
    use Illuminate\Support\Facades\App;

    class HttpsProtocol
    {
        public function handle(Request $request, Closure $next)
        {
            if (!$request->secure() && App::environment() === 'production') {
                return redirect()->secure($request->getRequestUri());
            }

            return $next($request);
        }
    }

Enregistrez le middleware dans le fichier Kernel.php :

    protected $middleware = [
        // Other middleware
        'App\Http\Middleware\HttpsProtocol',
    ];

Considérations sur Cloudflare

Si vous utilisez Cloudflare, vous pourriez rencontrer boucles de redirection. Ajoutez la ligne suivante à votre middleware :

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

Cela fait confiance aux en-têtes que CloudFlare envoie, empêchant ainsi la boucle de redirection.

Redirection basée sur l'environnement

Dans les versions précédentes de Laravel, env('APP_ENV') === 'production' a été utilisé. Dans Laravel 5.7 et versions ultérieures, remplacez-le par App::environment() === 'production'.

Conclusion

La mise en œuvre de la redirection HTTPS avec un middleware ou des écouteurs d'événements vous permet de forcer les connexions HTTPS pour votre application Laravel. N'oubliez pas de prendre en compte les paramètres Cloudflare si nécessaire et d'ajuster la redirection sensible à l'environnement en conséquence.

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