現在、サーバーにSSLが含まれています。https経由のlogin-pageを使用してユーザーにログインを強制したい。
<?php
if (empty($_SERVER['https']) || $_SERVER['https'] != 'on') {
header('location: https://my_login_page');
exit();
}
# rest of code
...
ただし、SSLがない場合は問題になります。
今、私は状況があります。次のURLを使用したユーザーリクエスト
http://domain.com/login.php
ここでは、にアクセスできず、$_SERVER['https']
ユーザーをにリダイレクトできることを確認したい
https://domain.com/login.php
たとえば、SSL証明書はしばらくすると期限切れになり、ユーザーが安全な接続なしでログインを使用し続けることを望んでいます。
私の目標は次の例のようなものです。
if (ssl_installed() && (empty($_SERVER['https']) || $_SERVER[] != 'on')) {
header('location: https://domain.com/login.php');
exit();
}
# when there's no SSL it continues using HTTP
はい、安全な接続を使用して可能な場合にssl_installed()
戻る関数(例:)を記述します。それ以外の場合は。true
false
使用してみましたが、リンクget_headers()
に対して常にfalseが返されることに気付きました。https://
考えられる解決策:
私はすでに実用的な解決策を持っています。データベースの構成テーブルに行ssl=1
(または0)が含まれており、データベース接続が確立された後、この値を使用してSSLを使用できるかどうかを判断し、上記の関数はこの値を使用して結果を返します。
私の質問は:もっと簡単な解決策はありますか?
明確にするために:私はPHPのみのソリューション(自動検出)を探しています!
どんな助けでもいただければ幸いです。