如何将opencart站点http移动到https

ANk*_*shi 2 ssl https opencart

我已经在我的 opencart 站点上安装了 ssl 证书,但有些页面在 https 上工作正常,但类别页面在 https 上不工作。我还需要更改数据库中的所有 url 吗?在配置文件中,我已经设置了 https。

bil*_*oah 6

其中一些可能不适用于您的特定安装,但为了创建一个全面的答案,我试图在这里涵盖所有基础:

注意:如果表名不是以 oc_

  • 打开config.php并将admin/config.php所有这些常量 url 声明更改为 https - 确保包含HTTP_SERVERHTTP_CATALOG
  • 在您的管理面板中system > settings,单击edit并在server表中设置Use SSL:Yes
  • 在您的数据库中更新表中的store_url列,oc_order以便所有链接都是 https。这很重要,因为如果 api 尝试访问您网站的 http 版本,更新订单可能会失败。您可以使用此查询:UPDATE oc_order SET store_url = REPLACE(store_url, 'http:', 'https:')
  • 如果您的描述表中有任何硬编码的图像和链接,您也应该替换它们。SSL 仍然有效,但会在浏览器栏中显示警告标志。这包括oc_product_descriptionoc_category_description和您可能在其中创建了 html 内容的任何其他表。
  • 与上面的主题文件相同。这是相当常见的发现硬编码http://在链接和图片footer.tpl,并header.tpl为初学者。您可以简单地浏览您的网站,看看是否有任何页面没有在浏览器中显示绿色锁图标,然后从那里获取它。
  • 另一个破坏 https 的罪魁祸首可能是第三方扩展,它们既可以作为文件存在,也可以作为oc_modification表中的ocmod 在 OC2 中存在。
  • 最后,创建一个重定向.httaccess以优雅地让流量知道您的页面现在可以在 https 上找到。我已经排除robots.txt了 openbay 路由的任何连接,因为根据经验,当我尝试重定向 ebay webhooks 时,它破坏了一些东西,而且它们似乎http只是默认情况下。我怀疑这可能是 openbay 如何处理这些请求的一个缺点,或者可能是配置问题,但我无法找到不会破坏 openbay 的解决方法,所以现在我建议保持这些请求不变。我在.htaccess
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/robots\.txt$
RewriteCond %{QUERY_STRING} !^route=ebay/openbay/*
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

应该这样做!