Web服务器是apache,ssl配置,监听443, 所有http请求都将使用重写规则重定向到https
问题是所有网址都是通过https服务的,但我们希望通过http连接到网络服务器,如果请求来自特定主机的特定网址,其余全部应通过ssl提供
示例:
当我们访问网址/test/devices
时,通常会通过ssl来服务
https://example.com/test/devices
但是当我们从主机10.1.2.3访问URL /test/devices
时,请求应该通过http协议而不是https来服务
这应该仅从该主机发生,如果任何其他主机访问此URL,则应通过ssl提供服务
我们正在使用的当前重写网址
RewriteEngine on
RewriteRule ^/$ /test/ [R=301,L]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
第一条规则会将所有请求重定向到测试文件夹
第二条规则会将请求重定向到https
感谢您的回复!
答案 0 :(得分:0)
您应该添加另一个RewriteCond以排除此IP的重定向:
RewriteCond %{SERVER_PORT} =80
RewriteCond %{REMOTE_ADDR} !=10.1.2.3
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R,L]