如果请求来自特定主机,特定 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]