如何将opencart网站的http转为https

How to move opencart site http to https

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

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

注意:如果名称不以 oc_[=49= 开头,您可能需要根据商店的 table 前缀调整 table 名称]

  • 打开 config.phpadmin/config.php 并将所有这些常量 url 声明更改为 https - 确保包含 HTTP_SERVERHTTP_CATALOG
  • 在您的管理面板中转到 system > settings,单击 edit,然后在 server table 中将 Use SSL: 设置为 Yes
  • 在您的数据库中更新 oc_order table 中的 store_url 列,以便所有链接都是 https。这很重要,因为如果 api 尝试访问您网站的 http 版本,更新订单可能会失败。您可以使用此查询:UPDATE oc_order SET store_url = REPLACE(store_url, 'http:', 'https:')
  • 如果您的描述 table 中有任何硬编码图像和链接,您也应该替换它们。 SSL 仍然有效,但会在浏览器栏中显示警告标志。这包括 oc_product_descriptionoc_category_description 以及您可能在其中创建了 html 内容的任何其他 table。
  • 与上面的主题文件相同。对于初学者来说,在 footer.tplheader.tpl 中找到硬编码的 http:// 链接和图像是相当常见的。您可以简单地浏览您的网站,看看是否有任何页面未在浏览器中显示绿色锁图标,然后从那里获取它。
  • 另一个破坏 https 的罪魁祸首可能是第三方扩展,它既可以作为文件存在,也可以作为 ocmods 在 oc_modification table.
  • 中存在
  • 最后,在 .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]

应该这样做!