ssl更改后的OpenCart图像管理器问题(1.5.6.4)

时间:2015-06-21 20:05:38

标签: php ssl https opencart

我有 OpenCart 1.5.6.4 ,我决定将 ssl 添加到网站。我已经更改了config.php文件(root和admin),并强制所有请求都是https。除了图像管理器(管理员)之外,网站在一些小修复后工作正常。

它没有显示图像,我可以看到文件夹,文件名和大小但不能显示缩略图。我已经清除了缓存,我可以看到它们被重新创建但它仍然没有显示在图像管理器中。

我已经检查了网络,调用了图像控制器并且其响应正确(来自缓存文件夹的缩略图)但是每个图像(缩略图)生成了一个新的http请求,其中包含错误的网址。

而不是:https://<website>/image/cache/data/<image>

网址是:

https://<website>/admin/%EF%BB%BF%EF%BB%BF%EF%BB%BFhttps://<website>/image/cache/data/<image>

或者我在请求视图中看到它:

https://<website>/admin/https://<website>/image/cache/data/<image>

我无法找到附加 HTTP_SERVER HTTPS_SERVER (它们是相同的)的位置。

编辑:

我发现问题出在哪里,我仍在寻找解决方案。

路径:admin - view - template - common

文件:filemanager.tpl

$.ajax({
                url: 'index.php?route=common/filemanager/image&token=<?php echo $token; ?>&image=' + encodeURIComponent('data/' + $(element).find('input[name=\'image\']').attr('value')),
                dataType: 'html',
                success: function(html) {
                    $(element).find('img').replaceWith('<img src="' + html + '" alt="" title="" />');
                }
            });

结果 html 前面有 UTF-8 BOM ,导致此问题。

如果您知道如何删除它,请告诉我们!

2 个答案:

答案 0 :(得分:0)

您是否可以检查您的cpanel中的热链接保护,是否也列出了https.I也有图片问题,结账时没有显示。一旦我启用了热链接保护,它就能正常工作。

答案 1 :(得分:0)

问题解决了!

UTF-8 BOM是3次非常奇怪,只有一个带有UTF-8文本的响应,所以如果问题是它应该是一个BOM。我将文件下载到我的电脑上,然后检查了文件编码(在调查网络和AJAX代码3天后)。当我从托管服务提供商的文件管理器进行更改时,他们从没有BOM的UTF-8变为UTF-8。看起来它正在将BOM添加到响应中。

将文件编码更改回 UTF-8无BOM 后,所有内容都恢复正常。图像显示给图像管理器,AJAX响应是干净的。