【问题标题】:SSL Encryption IssueSSL 加密问题
【发布时间】:2015-09-24 19:05:54
【问题描述】:

我在 www.medicosales.in 上托管了一个带有 OpenCart 脚本的电子商务网站

我遇到了一些错误。

  1. 通过键入 medicosales.in 打开网站时,该网站不会自动解析为 https://,我在 SSL 安全站点中看到,只需键入 yourdomain.com,URL 就会自动采用 https://

  2. 正在显示此消息

如何解决?

【问题讨论】:

    标签: php html mysql ssl server


    【解决方案1】:
    1. 如果您使用的是 Apache,您应该设置您的 .htaccess 文件,或者如果您使用其他网络服务器重写您的 URL 以包含 https://,如果它们还没有,您应该设置类似的文件。这将强制用户的浏览器通过正确的协议进行访问。

    对于 Apache,将以下代码放入站点文档根目录中的 .htaccess 文件顶部,确保启用 mod_rewrite

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    1. 每当您从外部加载资源时,例如通过<img src="http://example.com/myimage.jpg" ... 之类的方式,您必须确保协议也是 HTTPS,否则您的浏览器会因为资源未安全加载而向您显示该消息。

    解决此问题的方法是确保所有外部链接资源的 URL 都以 // 而不是 http:// 为前缀。这样浏览器将使用当前协议来获取资源。

    感谢@davidgiga1993 指出// 而不是使用https://

    【讨论】:

    • 最好使用 // 作为协议字符串。这种方式始终使用当前协议。有关详细信息,请参阅“网络路径参考”和 RFC 3986。
    • @davidgiga1993 好点,忘记了;编辑了原始帖子。
    • 我在浏览一些网站时得到了这个方法,我解决了这个问题。但是,由于您的答案与要求的答案相同,因此我接受了您的答案。谢谢... :)
    【解决方案2】:

    这不是自动的。您需要将 302/301 重定向发送回指向 https URL 的用户。

    【讨论】:

    • 我会推荐 301 而不是 302,因为这样会更好地将搜索引擎排名归功于网站的 SSL 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2018-09-25
    • 1970-01-01
    • 2017-11-28
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多