2013-10-12 127 views
1

我正在使用Opencart 1.5.6和Cloudflare专业服务。我遇到的问题是当我启用Opencart SSL时。Cloudflare Opencart HTTPS问题

我改变了config.php和admin/config.php来查看HTTPS。

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

我相信这是因为Cloudflare不会为Opencart提供HTTPS环境变量。

相信包含在这3个文件的代码:

  • /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

原来我并不需要做到这一点,我刚才说这对我的.htaccess:

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

CloudFlare的支持,我推荐这个片段添加到Apache的配置,使其没有必要每次创建开销时阅读.htaccess。

虽然没有在httpd.conf中测试过它。

+0

谢谢,它的作品! –