[英]Google chrome redirect from https to http in my yii2 application
从昨天开始,我的 google chrome 出现了问题。 如果我提交表单,chrome 会将我从 https 重定向到 http。 我正在使用 yii2 应用程序 function $this->redirect()
你知道如何解决这个问题吗?
它只发生在昨天的谷歌浏览器中。
非常感谢。
我不认为 Chrome 是问题(或者可能是问题,但你必须为这些情况在服务器端做一些事情)。 它似乎与您的服务器配置有关。 最后,您在 HTTPS 中打开表单,提交它,然后在服务器上进行重定向。
因此,您必须了解如何强制使用 HTTPS,但是从服务器上,您不能将该责任委托给浏览器(不完全)。
查看这篇文章“如何强制您的网站重定向到 https”
我不知道,也许我在这里遗漏了一些东西。 如果您可以详细说明该重定向中发生的情况,请。
事实证明,如果有办法强制浏览器使用HTTPS,那就是用HSTS。 感谢 Michal Hynčica。
查看这篇文章什么是 HSTS 以及如何实施?
这是某种黑客行为吗? 这个环境变量不应该自动取值吗?
最后这里有问题,因为$_SERVER['HTTPS'] = 'off',或者根本没有设置,说明请求不是通过HTTPS发出的,也可能是服务器落后了反向代理或负载均衡器。
我认为这就像在欺骗 Yii,具体如下功能:
web/Request.php
public function getIsSecureConnection()
{
if (isset($_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'], 'on') === 0 || $_SERVER['HTTPS'] == 1)) {
return true;
}
// Rest of the function
}
ServerRequest.php
public static function getUriFromGlobals()
{
$uri = new Uri('');
$uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http');
// Rest of the function
}
如果负载均衡器和服务器之间的重定向流量是 http 确保卸载的服务器启用了 ssl
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.