Laravel Framework fournit un moyen facile de forcer toutes les URL générées dans votre application pour utiliser le protocole HTTPS. Cette fonctionnalité garantit que vos liens, vos redirections et vos ressources utilisent toujours des connexions sécurisées dans des environnements de production. forceHttps
L'exemple suivant montre comment forcer HTTPS dans un environnement de production:
// 只在生产环境强制使用 HTTPS URL::forceHttps($app->isProduction()); // 更精细的环境控制 URL::forceHttps( $app->environment(['production', 'staging']) );
La méthode
<?php namespace App\Providers; use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot() { $this->configureSecureUrls(); } protected function configureSecureUrls() { // 判断是否需要强制使用 HTTPS $enforceHttps = $this->app->environment(['production', 'staging']) && !$this->app->runningUnitTests(); // 强制所有生成的 URL 使用 HTTPS URL::forceHttps($enforceHttps); // 确保设置正确的服务器变量 if ($enforceHttps) { $this->app['request']->server->set('HTTPS', 'on'); } // 为安全标头设置全局中间件 if ($enforceHttps) { $this->app['router']->pushMiddlewareToGroup('web', function ($request, $next){ $response = $next($request); return $response->withHeaders([ 'Strict-Transport-Security' => 'max-age=31536000; includeSubDomains', 'Content-Security-Policy' => "upgrade-insecure-requests", 'X-Content-Type-Options' => 'nosniff' ]); }); } } }
simplifie la gestion de la sécurité d'URL tout en s'intégrant de manière transparente avec des configurations d'environnement spécifiques. forceHttps
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!