我想知道为什么这个配置在通过http(端口80)向/API/client请求时返回308。
注:接收响应的设备是ARDUINO,他不处理3XX响应。
RewriteCond %{REQUEST_URI} !='/api/client' # ....
#RewriteCond expr "%{REQUEST_URI} -strmatch '/api/client'" #Doesn't work
#RewriteCond expr "%{REQUEST_URI} !~/api/" #Doesn't work
#RewriteCond !%{REQUEST_URI} ^/api/client #Doesn't work
#RewriteCond %{REQUEST_URI} !^/api/client #Doesn't work
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://example.com/$1 [R=308,L]
目标是将所有HTTP请求(端口80)重定向到HTTPS,但不包括发送到/API/client的请求
1条答案
按热度按时间xriantvc1#
目标是将所有HTTP请求(端口80)重定向到HTTPS,但不包括对
/api/client
的请求使用
THE_REQUEST
变量尝试此规则:THE_REQUEST
变量表示Apache从您的浏览器收到的原始请求,在执行其他重写指令后不会覆盖该请求。此变量的示例值为GET /index.php?id=123 HTTP/1.1
请确保在清除旧缓存后或从新浏览器中测试它。