跳到主要内容

解决 OSCommerce 在 HTTP 和 HTTPS 之间的会话问题

这可能是由于 cookie 设置引起的问题。通过简单修改 includes/configure.php 文件即可轻松解决。本指南将帮助您排查 OSCommerce 在 HTTP 和 HTTPS 之间的会话问题。

如何排查

本例中,我们将使用 https://secure.Bluehost.com/~username 这个网址。
注意: 您可以将此 URL 替换为您当前使用的任何安全路径。

编辑位于 includes 目录下的 configure.php 文件,该文件位于您的 OSCommerce 安装目录中。本例中路径为:

~/public_html/catalog/includes

configure.php 文件中有 5 行需要关注:

• define('HTTP_SERVER', 'http://www._example.com_'); // 例如,http://localhost - 在生产服务器上不应为空
• define('HTTPS_SERVER', 'https://secure.Bluehost.com/~username'); // 例如,https://localhost - 在生产服务器上不应为空
• define('ENABLE_SSL', true); // 结账流程是否使用安全服务器?
• define('HTTP_COOKIE_DOMAIN', 'www.domain.com');
• define('HTTPS_COOKIE_DOMAIN', 'secure.Bluehost.com');

第三行定义了在结账和账户配置时使用安全链接。其他所有链接则为非安全链接。您需要确保 HTTP_SERVER 和 HTTPS_SERVER 的域名与 HTTP_COOKIE_DOMAIN 和 HTTPS_COOKIE_DOMAIN 设置相同。请注意,域名中不包含 "https"、"~username" 或任何其他文件夹,仅保留域名本身。

总结

要排查 OSCommerce 会话 cookie 问题,您需要编辑位于 ~/public_html/catalog/includes 目录下的 configure.php 文件。必须确保 HTTP_SERVER 和 HTTPS_SERVER 的域名与 HTTP_COOKIE_DOMAIN 和 HTTPS_COOKIE_DOMAIN 设置一致。