如何根据源IP重定向到https?

如何根据源IP重定向到https?

我有一个正在运行的网站apache,该网站被访问

  • 内部(rfc1918 地址空间http://hostnamehttp://hostname.local
  • 外部(公共地址空间)https://example.org

当内部用户从 10.0.1.0/24 地址空间访问任何页面时,如何重定向访问,http://hostname/*以便http://hostname.local/*将他们发送到相关页面https://hostname.example.org

需要注意的是,我有两个子网 10.0.1.0/24,我想做https,还有 10.0.2.0/24,我不要目前想使用 https

我现在有的是

RewriteEngine On 
RewriteBase / 
RewriteCond %{REMOTE_HOST} 10\.0\.1 
RewriteRule .* https://hostname.example.org/ [R=301,L] 

但我不知道如何让用户https://hostname.example.org/test在访问时被发送到http://hostname[.local]/test

答案1

尝试这个:

RewriteRule ^(.*)$ https://hostname.example.org/$1 [R=301,L]

答案2

为了使只有访问 hostname.local 才能转到那里,请添加下面的条件 HTTP_HOST 并调整 RewriteRule。

RewriteEngine On 
RewriteBase / 
RewriteCond %{REMOTE_HOST} 10\.0\.1 
RewriteCond %{HTTP_HOST} ^hostname\.local$
RewriteRule ^(.*)$ https://hostname.example.org/$1 [R=301,L]

相关内容