現在のサイト URL プロトコル (http または https) を決定することは、安全で一貫したウェブサイト運営。ただし、ローカルで開発する場合、または SSL を使用せずに開発する場合、そのような関数の精度をテストするのは困難であることが判明する可能性があります。
提供された関数「siteURL」は、 $_SERVER 配列の 'HTTPS' キーとその空でない値または 'off' 値。または、「SERVER_PORT」が 443 であるかどうかを確認します。いずれかの条件が満たされる場合は「https://」を返し、そうでない場合は「http://」を返します。
SSL がない場合、プロトコルを正確に判断するには、$_SERVER 配列を調べる必要があります。ただし、SSL がアクティブな場合、アンカー タグの URL が http を使用している場合でも、サーバーは URL を自動的に https に変換します。その結果、プロトコルをチェックする必要がないと思われるかもしれません。
これに対処するために、$_SERVER で HTTPS と HTTP の両方のプロトコル インジケータをチェックすることで実装を改善することが提案されています。配列。これらの条件のいずれかが満たされる場合、関数は正しいプロトコルを返します。
<code class="php">if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $protocol = 'https://'; } else { $protocol = 'http://'; }</code>
このアプローチにより、SSL が有効であるかどうかに関係なく、両方のケースで正確さが保証されます。
以上が問題と解決策に焦点を当てた、いくつかのタイトルのオプションを次に示します。 オプション 1 (直接的かつ簡潔): PHP で正しいサイト URL プロトコルを確認する方法 (http と https) オプション 2 (チャを強調する)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。