我有一个正在运行的网站apache
,该网站被访问
- 内部(rfc1918 地址空间
http://hostname
)http://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]