$_SERVER['HTTPS'] の確認は、依然として HTTPS 接続を検証する一般的なアプローチです。ただし、特定のサーバーではこの変数の値が未定義であるとエラーが発生する可能性があります。この問題に対処するために、より信頼性の高い代替方法が利用可能です。
このコード スニペットにより、$_SERVER['HTTPS'] の可用性に関係なく HTTPS ステータスを確認できるようになります。
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
コードは 2 つの条件を利用して HTTPS を決定しますstatus:
このメソッドは、安全な接続であっても $_SERVER['HTTPS'] が設定されない可能性がある、IIS および Apache 1.x サーバーの潜在的な問題に対処します。
このコードは、IIS および Apache サーバーと互換性があります。さらに、ロード バランサーとサーバー間の接続がチェックされることに注意することが重要です。クライアントとロードバランサー間の接続には、HTTP_X_FORWARDED_PROTO ヘッダーを使用できますが、より複雑な実装が必要です。
以上が$_SERVER['HTTPS'] が未定義の場合に HTTPS 接続を確実にチェックする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。