您可以在 IIS8 url 重写映射中使用请求或响应 header 吗?

Can you use request or response header in an IIS8 url rewrite map?

我设置了一些规则来重写某些 url 以使事情更整洁,但我遇到了 HTTPS 问题,因为我们的服务器只能通过我们的负载平衡器使用 HTTP 访问。负载平衡器添加了我想用来代替 IIS 服务器变量 {HTTPS} 的请求 header Front-End-Https。这可能吗?

类似于:

<rule name="RemoveAspxExtension" enabled="true" stopProcessing="true">
      <match url="(.*).aspx$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{URL}" pattern="\.axd$" negate="true" />
            <add input="{URL}" pattern="\.aspx/" negate="true" />
            <add input="{URL}" pattern="\.asmx" negate="true" />
            <add input="{URL}" pattern="\.ashx" negate="true" />
            <add input="{URL}" pattern="\.css$" negate="true" />
            <add input="{URL}" pattern="\.js$" negate="true" />
            <add input="{URL}" pattern="\.png$" negate="true" />
            <add input="{URL}" pattern="\.jpg$" negate="true" />
            <add input="{URL}" pattern="\.gif$" negate="true" />
            <add input="{URL}" pattern="\.xml$" negate="true" />
            <add input="{URL}" pattern="\.txt$" negate="true" />
            <add input="{URL}" pattern="\.html$" negate="true" />
            <add input="{URL}" pattern="/scripts/" negate="true" /> 
            <add input="{URL}" pattern="/styles/" negate="true" />
            <add input="{URL}" pattern="/secured/" negate="true" />
      </conditions>
      <action type="Redirect" url="{MapProtocol:{ToLower:{Front-End-Https}}}://{HTTP_HOST}/{R:1}"  appendQueryString="true" />
    </rule>
  </rules>
  <rewriteMaps>
    <rewriteMap name="MapProtocol" defaultValue="http">
      <add key="on" value="https" />
      <add key="off" value="http" />
    </rewriteMap>
  </rewriteMaps>

是的,您可以通过在前面添加 {HTTP_ 来使用任何 HTTP Header,因此您可以使用 {HTTP_Front-End-Https},它应该可以工作。