我有一个处理信用卡处理的PHP文件。它以输入信用卡号的形式开始,然后变为“确认”屏幕(显示信用卡号),然后再次进行处理并显示结果。所有这三个加载都将通过PHP提交完成(我意识到确认可能比Java更好,但我没有编写)。它是目录中处理信用卡的唯一文件,因此是唯一需要httpS连接的文件。
我尝试使用$ _SERVER数组强制执行此操作,从SCRIPT_URI(或其他条目)的前缀中查找用于连接的协议,但没有前缀。
有没有简单的方法可以使用同一目录中的.htaccess文件执行此操作?我该如何仅对一个文件强制执行?如果还有其他简单的方法,我该怎么办?
抱歉,您的问题仍然存在,但是到目前为止,我的搜索还没有找到有效的解决方案,而且我不知道最佳实践是什么。
谢谢!
最佳答案
在进行所有信用卡处理的PHP页面的开始,您可以添加以下内容:
它将重定向回到自身,除非使用https
首次通过http
加载。当然,您仍然需要为您的域安装SSL证书。
if (!isset($_SERVER['HTTPS']) || !$_SERVER['HTTPS']) { // if request is not secure, redirect to secure url
$url = 'https://' . $_SERVER['HTTP_HOST']
. $_SERVER['REQUEST_URI'];
header('Location: ' . $url);
exit;
}
我在PHP中使用相同的逻辑,通过将始终放在每次对我的网站的请求开始时都会调用的文件中来保护我的整个域。
关于php - 如何在单个文件上强制使用HTTPS? (PHP),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9243213/