目前,我的服务器上包含 SSL。想要强制我的用户通过 https 使用登录页面登录。
<?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()
并意识到它总是对https://
链接返回错误。
可能的解决方案:
我已经有工作解决方案。我的数据库中的配置表包含行ssl=1
(或 0),在建立数据库连接后,我使用这个值来决定是否可以使用 SSL,上面提到的函数使用这个值来返回结果。
我的问题是:有没有更简单的解决方案?
需要明确的是:我正在寻找仅限 PHP 的解决方案(自动检测)!
任何帮助,将不胜感激。