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.
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.
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 :
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!