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