4

我已经在我的网站上安装了 OpenCarton,一切都很好,直到我尝试为安全区域正确设置 SSL。

我目前正在通过对整个站点强制启用 https 来使站点正常工作,但是当以“正确”方式设置安全页面时,它无法使安全页面正常工作。

我不是 php 方面的专家,所以我希望你把你当作一个白痴!我边走边学。

我通过 OpenCart 论坛研究了一个没有成功的解决方案。

问题显然是“不安全的内容”,因为在访问(例如,结帐)时,基本 href 仍然是 http 而不是 https。

我已经发现可能的原因是我的虚拟主机不支持变量 server['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;
    }   

所以我需要的是另一种替换这些行的方法。

我在这里的另一篇文章中找到了一些建议的替代方案,看起来类似的问题,但我不知道如何实现它们。

如果有人有耐心,逐步编辑会很有帮助。

如果需要,我可以提供更多信息,但不想太早太远。

谢谢

罗宾

4

1 回答 1

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 上提供。

于 2012-12-08T21:09:25.003 回答