如何将OpenCart网站HTTP移至HTTPS



我已经在OpenCart网站上安装了SSL证书,但是某些页面与HTTPS的工作正常,但类别页面无法与HTTPS一起使用。我还需要更改数据库中的所有URL吗?在配置文件中,我已经设置了https。

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

注意:如果商店的表前缀不以 oc_

为单位,则可能需要根据商店的表格进行调整名称
  • 打开config.phpadmin/config.php并将所有这些常数URL声明更改为HTTPS - 确保包括HTTP_SERVERHTTP_CATALOG
  • 在您的管理面板中,请转到system > settings,单击edit,然后在server表设置Use SSL:Yes
  • 在您的数据库中更新oc_order表中的store_url列,以便所有链接均为HTTPS。这很重要,因为如果API尝试访问网站的HTTP版本,则更新订单可能会失败。您可以使用此查询:UPDATE oc_order SET store_url = REPLACE(store_url, 'http:', 'https:')
  • 如果您的描述表中有任何硬编码的图像和链接,则应该更换这些图像和链接。SSL仍将工作,但会在浏览器栏中显示警告标志。这包括oc_product_descriptionoc_category_description和您可能创建HTML内容的任何其他表。
  • 与您的主题文件相同。在footer.tpl中找到硬编码的http://链接和图像和header.tpl的启动器很常见。您可以简单地浏览网站,查看是否没有任何页面显示浏览器中的绿色锁图标并从那里拿走。
  • 另一个罪魁祸首https可以是第三方扩展,在 oc_modification表中,可以作为文件和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]

应该这样做!

最新更新