Mod rewrite Isapi重写-在负载平衡器后面的重定向中保留HTTPS

Mod rewrite Isapi重写-在负载平衡器后面的重定向中保留HTTPS,mod-rewrite,redirect,https,isapi-rewrite,load-balancing,Mod Rewrite,Redirect,Https,Isapi Rewrite,Load Balancing,我正在运行一个站点,它有两个独立的子域——一个用于HTTP,另一个用于HTTPS http://www.example.com https://secure.example.com http://secure.example.com不存在,将无法解析 问题是该站点运行在一个负载平衡器后面,该负载平衡器处理所有SSL。负载平衡器和web服务器之间的通信始终使用HTTP 因此,当使用Isapi Rewrite 3(IIS的mod_Rewrite克隆)实现一些重定向时,我遇到了一个问题 就Isap

我正在运行一个站点,它有两个独立的子域——一个用于HTTP,另一个用于HTTPS

  • http://www.example.com
  • https://secure.example.com
http://secure.example.com
不存在,将无法解析

问题是该站点运行在一个负载平衡器后面,该负载平衡器处理所有SSL。负载平衡器和web服务器之间的通信始终使用HTTP

因此,当使用Isapi Rewrite 3(IIS的mod_Rewrite克隆)实现一些重定向时,我遇到了一个问题

就Isapi重写而言,HTTPS已关闭-因此
secure.example.com
上的重定向失败

假设我有一条规则,上面写着:

RewriteRule ^/example/$ /test/ [R=301,L]
如果我请求
https://secure.example.com/example/
我想以
https://secure.example.com/test/
但是,由于Isapi Rewrite将HTTPS视为关闭状态,因此我最终选择了
http://secure.example.com/test/

如果域是
secure.example.com
,有没有办法强制重定向到HTTPS

大致如下:

RewriteCond %{SERVER_NAME} secure.example.com
RewriteRule ^/(.*)$ https://secure.example.com/$1
但这不起作用-它会立即强制显式重定向,而我希望继续处理其他
重写规则

谢谢


斯图

像这样的smth怎么样:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^secure\.mydomain\.com$ [NC]
RewriteRule ^/example/$ https://secure.mydomain.com/test/ [R=301,L]

谢谢你,伙计,这确实管用!我希望有一种方法可以运行一次域检查,而不是在每个规则之前-否则我的.htaccess文件将变得非常臃肿!也许这是希望太多了…如果你把这些规则放在secure.example.com根目录下的.htaccess中,你可以完全忽略主机检查。我听到了-不幸的是,我目前只能在secure和www域上使用相同的.htaccess文件。将此标记为答案-感谢您的帮助!