我想通过Web服务器上的http GET请求从Arduino微控制器中调用一些脚本,该服务器使用ISPConfig和apache2 Web服务器进行设置。
它被配置为执行从HTTP到HTTPS的重定向,但是不幸的是,Arduino EtherenetClient不支持HTTPS。
特定虚拟主机的ISPConfig具有以下规则:
<VirtualHost *:80>
...
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/
RewriteRule ^ - [END]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
</VirtualHost>
此规则执行重定向HTTP-> HTTPS
我尝试为.httpaccess文件中的特定文件重写此规则,以避免重定向HTTP-> HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} ^off$
RewriteCond %{REQUEST_URI} !/scripts/exec.php$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
但不幸的是,它无法正常工作。
PS:另外,作为一项实验(并确保在Apache中使用.httpaccess
文件),请使用以下规则重定向所有HTTPS-> HTTP:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
它导致循环301-> 302-> 301-> 302。