1

我正在使用具有Cloudflare专业服务的 Opencart 1.5.6。我遇到的问题是我启用了 Opencart SSL。

我已更改 config.php 和 admin/config.php 以查看 HTTPS。

当我浏览网站上的 HTTPS 网址时,主要 HTML 以 HTTPS 的形式通过,但大多数其他资源仍然是 HTTP,这会导致不安全的内容问题。

我相信这是因为 Cloudflare 没有使 HTTPS 环境变量可用于 Opencart。

我相信这三个文件中包含的代码:

  • /admin/controller/common/header.php
  • /admin/controller/common/filemanager.php
  • /catalog/controller/common/header.php

是问题:

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
    $this->data['base'] = HTTPS_SERVER;
} else {
    $this->data['base'] = HTTP_SERVER;
}

问题是,有谁知道我可以如何改变它以使其正常工作Cloudflare

4

1 回答 1

4

原来我不需要这样做,我刚刚将它添加到我的 .htaccess 中:

RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteRule .* - [E=HTTPS:on]
SetEnvIf X-Forwarded-Proto https HTTPS=on 

Cloudflare 支持建议我将此代码段添加到 apache 配置中,这样就不必每次创建开销时都读取 .htaccess。

不过尚未在 httpd.conf 中对其进行测试。

于 2013-10-15T10:36:26.270 回答