将包含 arduino 文本的 url 限制为 http 到 https 重定向

Posted

技术标签:

【中文标题】将包含 arduino 文本的 url 限制为 http 到 https 重定向【英文标题】:restricting http to https redirect for the url containing arduino text 【发布时间】:2017-05-17 22:55:39 【问题描述】:

我在服务器中配置了 HTTP 到 HTTPS 重定向,为了在端口 8090 上显示来自 arduino MCU 的 json 数据,我需要限制 http 到 https 重定向,所以按照 this 我已将我的 apache Web 服务器配置为以下

<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>

但它不起作用。控制台中出现同样的错误,任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我怀疑问题出在浏览器(客户端)而不是您的服务器配置中。出于安全原因,当您从 https 域获取页面时,大多数现代浏览器都会阻止所有 http 请求,在您的情况下:https://san.gotdns.ch/arduino/gauge.htm

在 MDN 中:

从 Firefox 23 开始,Firefox 默认会阻止活动的混合内容。这遵循 Internet Explorer(自第 9 版起)和 Chrome 采用的做法。

也许这篇文章对你有用:

https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content

有趣的部分:

如何修复您的网站

避免混合内容屏蔽的最佳策略是为所有 内容为 HTTPS 而不是 HTTP。

对于您自己的域,将所有内容作为 HTTPS 提供并修复您的链接。 通常,内容的 HTTPS 版本已经存在,而这只是 需要在链接中添加“s” - http:// 到 https://。

但是,在某些情况下,路径可能只是对中的媒体不正确 题。有在线和离线工具(取决于您的 操作系统),例如链接检查器来帮助解决这个问题。

对于其他域,如果可用,请使用站点的 HTTPS 版本。如果是 HTTPS 不可用,您可以尝试联系域并询问他们是否 他们可以通过 HTTPS 提供内容。

【讨论】:

那我该怎么办? 我觉得如果可以完全跳过重定向到https我就不会掉进这个坑了 json 来自无法传递 https 的微控制器 看看这个问题:***.com/questions/18251128/… 这个问题也可能有帮助:***.com/questions/8371/…

以上是关于将包含 arduino 文本的 url 限制为 http 到 https 重定向的主要内容,如果未能解决你的问题,请参考以下文章

将字符串文字限制为仅文本

Arduino UCS2为UTF文本格式

怎么用电池给arduino板供电? 我想把arduino板独立出来不接电脑电源实现功能 太受限制了

将 Arduino 库添加到 Atmel Studio 7 AVR C++ 项目 - 缺少 Arduino.h

arduino编程时候如何利用winavr的库文件??如:#include <avr/EEPROM.h>

如何将一列文本 URL 转换为 Excel 中的活动超链接?