我已在我的网站上安装了OpenCarton,一切顺利,直到我尝试为安全区域正确设置SSL。
我目前正在通过强制https打开整个网站来使网站工作,但是当它以“正确”方式设置时无法使安全页面正常工作。
我不是php的专家,所以我希望你能像几乎白痴一样对待!我正在学习。
我已经通过OpenCart论坛研究了一个没有成功的解决方案。
问题是“不安全的内容”显然是因为基本的href在访问时保持为http而不是https,例如结帐。
我已经发现可能的原因是我的网站主机不支持变量服务器['HTTPS'],他们建议问OpenCart,但是在将近一周后我没有得到任何有用的答案!
/controller/common/header.php中的以下行是问题所在。
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
$this->data['base'] = $this->config->get('config_ssl');
} else {
$this->data['base'] = $this->config->get('config_url');
}
再次向下文件:
if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
$server = HTTPS_IMAGE;
} else {
$server = HTTP_IMAGE;
}
所以我需要的是另一种替代这些线的方法。
我在这里的另一篇文章中找到了一些建议的替代方案,看起来像是一个类似的问题,但我不知道如何实现它们。
如果有人有耐心,一步一步的编辑会很有帮助。
如果需要,我可以提供更多信息但不想过早地过分。
由于
罗宾
答案 0 :(得分:1)
if (isset($this->request->server('SERVER_PORT')) && (($this->request->server('SERVER_PORT') == '443'))) {
$this->data['base'] = $this->config->get('config_ssl');
} else {
$this->data['base'] = $this->config->get('config_url');
}
并为您的其他代码片段执行相同的操作。您基本上检查服务器正在运行的端口。 HTTP将在端口80上提供,HTTPS将在端口443上提供。