News新闻

业界新闻动态、技术前沿
Who are we?

您的位置:首页      网站知识      [确定有效] ECSHOP后台登录不了的问题解决 https打不开
[PHP+MYSQL]

[确定有效] ECSHOP后台登录不了的问题解决 https打不开

标签: [PHP+MYSQL] 发布日期:2024-06-24 16:09:15 123
在mysql workbench中如何导入导出数据?在 MySQL Workbench 中导入与导出数据的详细指南

在当今的互联网环境中,为网站部署 SSL 证书以实现 HTTPS 访问已成为保障数据安全和提升用户信任的重要举措。然而,对于使用 ECShop 系统的网站来说,在部署 SSL 证书并启用 HTTPS 访问后,可能会遇到后台无法访问的问题。本文将深入探讨这个问题的可能原因及相应的解决方案。

 

ECShop 是一款开源的电子商务系统,被广泛应用于各类电商网站的搭建。在部署 SSL 证书后,如果后台无法访问,可能是由于以下几个原因导致的。

 

下面是具体的解决步骤:

 

第一步,检查系统程序。99%可能因为includes/cls_ecshop.php的 function  http() 函数问题;约154行  改写为以下代码即可

return ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https')) ? 'https://' : 'http://';

 

 

第二步,复查服务器 SSL 配置。如果您对服务器的 SSL 配置不太熟悉,可以参考服务器提供商的文档或寻求技术支持,以确保证书安装无误,证书链完整,以及 443 端口的正确配置。

 

第三步,清除浏览器缓存。不同的浏览器清除缓存的方法略有不同,一般可以在浏览器的设置选项中找到“清除浏览数据”或“清除缓存”的功能,选择清除缓存并重新访问后台。

 

第四步,排查插件和扩展兼容性。如果系统安装了第三方插件或扩展,逐个禁用它们,然后尝试访问后台,以确定是否是某个插件或扩展导致了问题。

 

通过以上步骤,大多数情况下都能够解决 ECShop 系统部署 SSL 证书后后台无法访问的问题。


原因分析:

一个常见的原因是配置文件中的链接未正确更新为 HTTPS 格式。在 ECShop 的配置文件中,可能存在指向后台的链接仍然是 HTTP 格式的情况。这会导致浏览器在尝试访问后台时,由于安全策略的限制而阻止访问。解决方法是仔细检查配置文件,将所有涉及后台链接的部分修改为 HTTPS 格式。

 

另一个可能的原因是服务器的 SSL 配置不正确。例如,证书安装不完整、证书链不完整或者服务器的端口设置不正确等。这种情况下,需要重新检查服务器的 SSL 配置,确保证书正确安装,证书链完整,并且服务器的 443 端口(HTTPS 端口)已正确开放并配置。

 

此外,浏览器缓存也可能导致问题。有时,即使网站的配置已经正确更新为 HTTPS,但由于浏览器缓存了之前的 HTTP 链接,仍然会尝试使用 HTTP 访问后台,从而导致访问失败。解决这个问题的方法是清除浏览器缓存,或者尝试使用其他浏览器进行访问。

 

还有一种情况是,ECShop 系统本身的某些插件或扩展与 HTTPS 不兼容。这可能需要更新这些插件或扩展,或者在必要时暂时禁用它们,以确定是否是它们导致了后台无法访问的问题。

 

总之,在遇到 ECShop 系统部署 SSL 证书后后台无法访问的问题时,不要慌张,通过仔细排查上述可能的原因,并按照相应的解决步骤进行处理,相信您能够顺利解决问题,为您的网站提供更安全、可靠的服务。

 

附:$_SERVER头的各项指标参数含义:

$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING'] #查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如:“en”。
$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。

 

 



本文由快乐阿信原创,欢迎转载,转载请注明来源。      题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,深圳市乐道网络科技有限公司仅提供信息存储空间服务。