Redirect Amazon弹性负载均衡器下的特殊非www到www重定向

Redirect Amazon弹性负载均衡器下的特殊非www到www重定向,redirect,iis-7,amazon-web-services,Redirect,Iis 7,Amazon Web Services,如何使用IIS的重写规则扩展(writes to web.config)在IIS7中创建301重定向,该扩展将允许将非www重定向到www-但是,我不想使用(.*),我希望URL重写器忽略类似DNS的URL,以便它可以在Amazon负载平衡器下工作。没有它,Amazon负载平衡器将无法读取健康检查文件,因为它将被重定向,而不是获得200OK,而是获得301 所以我实际上需要一个规则来匹配包含mydomain.com的URL,或者一个以它开头的URL,这样它就不会循环 当前规则不好: <re

如何使用IIS的重写规则扩展(writes to web.config)在IIS7中创建301重定向,该扩展将允许将非www重定向到www-但是,我不想使用(.*),我希望URL重写器忽略类似DNS的URL,以便它可以在Amazon负载平衡器下工作。没有它,Amazon负载平衡器将无法读取健康检查文件,因为它将被重定向,而不是获得200OK,而是获得301

所以我实际上需要一个规则来匹配包含mydomain.com的URL,或者一个以它开头的URL,这样它就不会循环

当前规则不好:

<rewrite>
  <rules>
    <rule name="CanonicalHostNameRule1">
       <match url="(.*)" />
         <conditions>
           <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com$" negate="true" />
         </conditions>
         <action type="Redirect" url="http://www.mydomain.com/{R:1}" />
    </rule>
 </rules>
</rewrite>

这会将dns.amzn.com等URL重定向到www.mydomain.com-我已经在IIS7上尝试过了


需要更好的解决方案

您有解决方案吗

我使用{HTTP_USER_AGENT}添加了一个不匹配ELB(用户代理)的条件。 这阻止了ELB的规则运行,但我现在正在测试这一点

干杯

还添加了以下内容:

<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" />
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="HTTPS" negate="true" />                        
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule> 

你想要的是

<add input="{HTTP_USER_AGENT}" pattern="ELB-HealthChecker" negate="true" />