如何将opencart站点http移至https

时间:2018-04-03 14:03:46

标签: ssl https opencart

我已经在我的opencart网站上安装了ssl证书,但有些网页可以正常使用https,但类别页面无法使用https。我是否还需要更改数据库中的所有网址?在配置文件中,我已经设置了https。

1 个答案:

答案 0 :(得分:2)

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

注意:您可能需要根据商店的表格前缀调整表格名称,如果它们不是以oc_开头

  • 打开config.phpadmin/config.php并将所有常规网址声明更改为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 webhook时,它破坏了一些东西,它们似乎只是默认情况下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]

应该这样做!