Rewriting URLs from https:// to http:// in IIS7

前端 未结 4 803
孤独总比滥情好
孤独总比滥情好 2020-12-04 14:51

I\'m trying to rewrite urls from the form:

https://example.com/about

to the form

http://example.com/about

相关标签:
4条回答
  • 2020-12-04 14:59

    Turns out that I had port :443 bound to a different website!

    The above rewrite rules work fine for http:// to https:// rewriting and vice-versa -- though there might be more optimal or simple ways to do it.

    Leaving this question here for future voyagers to find, as I didn't see many good examples of the https:// to http:// rewriting scenario on the web.

    0 讨论(0)
  • 2020-12-04 15:08

    This post is a little old, but I wanted to answer. I am using ASP.Net MVC3, and Fabio's answer above didn't work for me. The easiest solution I came up with to handle the https redirect to http, while still allowing valid https pages to request secure content was just to add Whitelist rules above my https/http redirects:

        <rule name="WhiteList - content folder" stopProcessing="true">
          <match url="^content/"/>
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
          <action type="None"/>
        </rule>
        <rule name="Redirect to HTTPS" stopProcessing="true">
          <match url="(.*)billing/(.*)" ignoreCase="true" />
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/billing/" redirectType="SeeOther" />
        </rule>
        <rule name="ForceNonHttps" stopProcessing="true">
          <match url="(.*)billing/(.*)" ignoreCase="true" negate="true" />
          <conditions>
            <add input="{SERVER_PORT}" pattern="^443$" />
          </conditions>
          <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}{REQUEST_URI}" />
        </rule>
    
    0 讨论(0)
  • 2020-12-04 15:13

    please first consider binding https to your website for making below redirect module to work is essential (so bind your web app with a self-signed or valid certificate)

    final part in web.config to redirect https to http:

     <rewrite>
        <rules>
            <rule name="Force NonHTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                   <add input="{HTTPS}" pattern="on" />
                </conditions>
                <action type="Redirect" url="http://{HTTP_HOST}/{REQUEST_URI}" />
            </rule>
        </rules>
    </rewrite>
    

    if you need the equivalent IIS GUI in rewrite module see below image

    source: look tech-net for more detail and step by step guide.

    0 讨论(0)
  • 2020-12-04 15:20

    Your solution work, but the problem is: your second instruction kill first instruction for any links is not (.)billing/(.), including your css, js, and images.

    You can use this https to http rule:

    <rule name="HTTPS to HTTP redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
    <add input="{RequiresSSL:{R:1}}" pattern="(.+)" negate="true" />
    <add input="{HTTPS}" pattern="on" ignoreCase="true" />
    <add input="{REQUEST_URI}" pattern="^(.+)\.(?!aspx)" negate="true" />
    </conditions>
    <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}/{R:1}" />
    </rule>
    
    0 讨论(0)
提交回复
热议问题