IIS7.5还使用https将非www重定向到www

时间:2017-02-14 15:35:52

标签: redirect iis-7.5

我正在尝试将我的IIS配置为将所有无www调用重定向到包含https的www调用 第一部分非常简单,但是我没有找到一个解决方案,当你在绑定上启用了https时它也会起作用。

所以我想要两者 http://domain.com/https://domain.com/http://www.domain.com/ 将所有人重定向到:

https://www.domain.com/

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

<rewrite>
      <rules>
      <rule name="Non www HTTP to HTTPS" patternSyntax="ECMAScript" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                  <add input="{HTTPS}" pattern="off" />
                  <add input="{HTTP_HOST}" pattern="^www" negate="true" />
              </conditions>
              <action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" />
          </rule>
          <rule name="Non www HTTPS to www HTTPS" patternSyntax="ECMAScript" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                  <add input="{HTTPS}" pattern="On" />
                  <add input="{HTTP_HOST}" pattern="^www" negate="true" />
              </conditions>
              <action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" />
          </rule>
          <rule name="HTTP to HTTPS" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                  <add input="{HTTPS}" pattern="off" />
                  <add input="{HTTP_HOST}" pattern="www*" />
              </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
          </rule>
      </rules>
  </rewrite>

答案 1 :(得分:0)

@Josh:您的回答适用于第一个请求。 它最终将以“https://www”结束,完美无缺。 但如果我然后删除“www。”从地址来看,它会像下面的图片一样失败。

Resulting page in Firefox

答案 2 :(得分:0)

This ended up working for me:

<rewrite>
        <rules>                                 
            <rule name="HTTP to HTTPS redirect" stopProcessing="true">
              <match url="(.*)" />
                <conditions>
                  <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions>
              <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
            </rule>
        </rules>        
    </rewrite>