Laravel 5 では、Middleware クラスを使用してアプリケーションに HTTPS を強制できます。これを実現する方法は次のとおりです:
ミドルウェア クラス:
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); } }
ミドルウェアの適用:
次のステップは次のとおりです。このミドルウェアをすべての受信リクエストに適用します。 Kernel.php ファイルで、$middleware 配列に追加します。
protected $middleware = [ // Existing middleware... // Custom middleware 'MyApp\Http\Middleware\HttpsProtocol', ];
実稼働環境の検証:
提供されたミドルウェアは、すべての HTTP リクエストを HTTPS にリダイレクトします。ただし、この動作を実稼働環境のみに制限することもできます。これを行うには、アプリケーション環境を確認します:
if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); }
Cloudflare に関する考慮事項:
Cloudflare を使用している場合、Cloudflare が転送するため、リダイレクト ループが発生する可能性があります。 HTTPを使用したリクエスト。これを修正するには、$middleware に追加する代わりに、次の行をミドルウェアに追加します:
$request->setTrustedProxies([$request->getClientIp()]);
Web Group (Laravel v5.3 ):
配列を Kernel.php の Web グループに追加できます。
protected $middlewareGroups = [ 'web' => [ // ... // Custom middleware 'MyApp\Http\Middleware\HttpsProtocol', ], ];
覚えておいてください。 Web グループはデフォルトですべてのルートに適用されます。
追加メモ:
以上がミドルウェアを使用してLaravel 5でHTTPSを強制する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。