将 http 更改为 https 后,opencart 管理员无法正常工作

Posted

技术标签:

【中文标题】将 http 更改为 https 后,opencart 管理员无法正常工作【英文标题】:opencart admin not working after change http to https 【发布时间】:2016-09-06 07:35:14 【问题描述】:

我是 opencart 的新手。我想在 opencart 中启用SSL。 所以我尝试更改以下文件。

config.php 文件更改

// HTTP
define('HTTP_SERVER', 'http://example.com/');

// HTTPS
define('HTTPS_SERVER', 'https://example.com/');

admin/config.php 文件更改

// HTTP
define('HTTP_SERVER', 'http://example.com/admin/');
define('HTTP_CATALOG', 'http://example.com/');

// HTTPS
define('HTTPS_SERVER', 'https://example.com/admin/');
define('HTTPS_CATALOG', 'https://example.com/');

system/library/url.php 文件更改(第 16 行)

public function link($route, $args = '', $secure = true)

.htaccess 将更改放在代码后面。

RewriteEngine On
RewriteCond %HTTPS off
RewriteRule (.*) https://%HTTP_HOST%REQUEST_URI [R,L]

管理面板更改`设置>服务器>使用SSL设置'

以上更改后我无法登录管理面板不显示任何错误消息。

【问题讨论】:

【参考方案1】:

在根目录和 admin 文件夹中编辑 config.php 文件以指向 https url 和 .htaccess 文件。

也在system/config目录中

分别是2个文件:

admin.php(用于后台管理)

找到

$_['site_ssl']         = false;

改成

$_['site_ssl']         = true;

与文件 catalog.php 相同(用于前端)

【讨论】:

【参考方案2】:

您错过了管理员网址的 https。 在admin/config.php 中更改以下值

define('HTTPS_SERVER', 'http://example.com/admin/');
define('HTTPS_CATALOG', 'http://example.com/');

define('HTTPS_SERVER', 'https://example.com/admin/');
define('HTTPS_CATALOG', 'https://example.com/');

【讨论】:

前端页面一切正常吗? 是的,但无法进行管理员登录 是否会显示管理员登录页面并且其表单操作具有 https url ?也让我们知道你为什么改变:system/library/url.php file change (line : 16). 谢谢您的最后建议。登录表单操作没有 https url,但我尝试在其工作后手动替换。我如何从操作网址更改?我从某个地方得到了解决方案,这就是为什么我试图更改 url.php 尝试将管理员和前端的所有配置文件 URL 更改为 https。【参考方案3】:

转到根文件夹点击系统然后转到配置,突出显示 admin.php,然后编辑它...确保站点 ssl 为 true

【讨论】:

【参考方案4】:

使整个网站采用 SSL,这是现在的趋势(如 amazon.co.uk 等),并提供一点 SEO 提升。我必须将 http_server 设置为 https。除此之外:

OpenCart 1.5 的 https

在设置/系统/服务器中开启 检查 admin/config.pgp 和 config.php 是否设置了正确的 SSL url

在 config.php 中设置 http_server 设置 - 通常并且应该是 http。当设置为 https 时,似乎可以对其进行排序。

所以在 config.php 我现在有了

<?php
// HTTP
define('HTTP_SERVER', 'https://www.example.com/');

所以现在当我在 http:// 页面中“查看源代码”并搜索任何对 http:// 的引用时,我没有得到任何回报。

【讨论】:

【参考方案5】:

很容易解决这个问题。在系统/库/url.php

改变

if ($connection ==  'NONSSL') 
    $url = $this->url;  
 else 
    $url = $this->ssl;  

$url = $this->ssl;

这会强制所有链接使用 https

【讨论】:

【参考方案6】:

在管理页面中创建新的 .htaccess 文件,其中仅包含以下代码:

RewriteBase /

【讨论】:

以上是关于将 http 更改为 https 后,opencart 管理员无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

当SSL终止后,WSDL绑定URL将协议更改为HTTP

使用 jQuery 将 iframe 源从 HTTP 更改为 HTTPS

为WCF服务启用HTTPS流量。将流量http更改为https的问题

http | https NodeJS模块将目标网址更改为http,导致重定向[关闭]

从 http 1.0 更改为 http 1.1 后遇到“您无权进行此 API 调用”

英国SVSFX官方网址域名更改为HTTPS