我是网络编程的新手。我创建了一个简单的登录表单(使用php)。现在我想把这个转换为HTTPS(带SSL)登录表单。我该怎么做才能实现这个目标?
答案 0 :(得分:5)
获取SSL证书。在服务器上运行HTTPS(与托管公司合作使其运行)后,您可以使用类似于以下内容的代码强制在PHP中建立HTTPS连接。 .htaccess是另一种选择,在别处提到。
<?
function current_protocol()
{
$protocol = 'http';
if ( array_key_exists( 'HTTPS', $_SERVER ) && $_SERVER['HTTPS'] === 'on' )
{
$protocol = 'https';
}
return $protocol;
}
//------------------------------------------------------------------------
function current_has_ssl()
{
return current_protocol() == 'https';
}
//------------------------------------------------------------------------
function force_https()
{
if ( current_has_ssl() == false )
{
header( "HTTP/1.1 301 Moved Permanently" );
header( 'Location: https://example.com' );
exit();
}
}
//------------------------------------------------------------------------
// Usage:
force_https(); // at the top of a script before any output.
答案 1 :(得分:4)
如果尚未启用,则需要enable SS L. 如果你打算在生产中运行它,你还需要购买和 安装SSL证书而不是自签名证书。
如果启用了SSL,则使用https而不是http运行您的表单,如上面的评论所说
要强制用户使用SSL版本,请在.htaccess文件中添加以下内容
RewriteEngine On
Rewritebase /
RewriteCond %{HTTPS} off
RewriteRule ^login\.php https://yourdomain.com/login.php [L,R=301]