有没有办法在不调整.htaaccess的情况下将网页的访问者从http重定向到https?
答案 0 :(得分:0)
您应该强制客户端始终使用HTTP严格传输安全性(HSTS)标头请求HTTPS:
// Use HTTP Strict Transport Security to force client to use secure connections only
$use_sts = true;
// iis sets HTTPS to 'off' for non-SSL requests
if ($use_sts && isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
header('Strict-Transport-Security: max-age=31536000');
} elseif ($use_sts) {
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301);
// we are in cleartext at the moment, prevent further execution and output
die();
}
请注意,HSTS在大多数现代浏览器中都受支持,但不是通用的。因此,如果用户最终使用HTTP,则上述逻辑会手动重定向用户,无论支持如何,然后设置HSTS标头,以便在可能的情况下应由浏览器重定向其他客户端请求。
答案 1 :(得分:0)
如果将SECURE_SSL_REDIRECT
设置为True,SecurityMiddleware将永久(HTTP 301)将所有HTTP连接重定向到HTTPS。