Laravel では、ミドルウェア クラスを利用することでアプリケーションに HTTPS を強制できます。サンプル実装は次のとおりです。
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); } }
このミドルウェアをアクティブにするには、Kernel.php ファイルのミドルウェア グループに追加します。
protected $middleware = [ // ... 'MyApp\Http\Middleware\HttpsProtocol' ];
デフォルトでは、Web ミドルウェア グループが適用されます。すべてのルートに接続されるため、これ以上の設定は必要ありません。
Cloudflare を使用している場合、リダイレクト ループが発生する可能性があります。これは、Cloudflare が HTTPS を示す「X-Forwarded-Proto」ヘッダーを付けて HTTP リクエストを転送するためです。これに対処するには、次の行をミドルウェアに追加します。
$request->setTrustedProxies([$request->getClientIp()]);
これは、Cloudflare によって提供される IP とヘッダーを信頼し、ループを中断します。
Laravel バージョン 5.3 以降の場合: ミドルウェア クラスをKernel.php ファイル内の「web」ミドルウェア グループ。
Laravel バージョン 5.7 以降:
以上がLaravelアプリケーションでHTTPSを強制する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。