我在服务器中配置了HTTP到HTTPS的重定向,在端口8090上显示来自arduino MCU的json数据我需要将http限制为https重定向,所以关注this我已将我的apache web服务器配置为< / p>
<VirtualHost *:80>
RewriteEngine on
ServerName 192.168.1.45
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
# force HTTP for /arduino
RewriteCond %{HTTPS} =on
RewriteRule ^(arduino) http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
然后我重新启动了apache服务器并刷新了页面,但我仍然在浏览器控制台中收到错误说:
[警告] [已屏蔽]页面位于 https://www.example.com/arduino/gauge.htm不允许显示 来自http://www.example.com:8090/json的不安全内容。 (jquery.min.js, 第5行
我甚至尝试过:
<VirtualHost *:80>
RewriteEngine on
ServerName 192.168.1.45
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
# force HTTP for /json
RewriteCond %(SERVER_PORT} ^8090
RewriteCond %{HTTPS} =on
RewriteRule ^(json) http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
但它不起作用。在控制台中出现同样的错误,将非常感谢任何帮助。
答案 0 :(得分:0)
我怀疑问题出在浏览器(客户端)而不是服务器配置中。出于安全原因,当您从https域获取页面时,大多数现代浏览器会阻止所有http请求,在您的情况下:https://san.gotdns.ch/arduino/gauge.htm
在MDN:
从Firefox 23开始,Firefox默认阻止活动的混合内容。这遵循Internet Explorer(自版本9)和Chrome。
采用的做法
也许这篇文章对您有用:
有趣的部分:
如何修复您的网站
避免混合内容阻止的最佳策略是为所有人服务 内容为HTTPS而非HTTP。
对于您自己的域,将所有内容作为HTTPS提供并修复您的链接。 通常,内容的HTTPS版本已经存在,而这只是 需要添加&#34; s&#34;链接 - http://到https://。
但是,在某些情况下,路径可能只是对媒体不正确 题。有在线和离线工具(取决于你的 操作系统)如linkchecker帮助解决这个问题。
对于其他域,请使用该网站的HTTPS版本(如果有)。如果是HTTPS 如果没有,您可以尝试联系域名并询问是否 他们可以通过HTTPS提供内容。