it-swarm.com.de

HTTP zu HTTPS Umleitung - IIS 8.5 funktioniert nicht richtig

Ich habe eine Reihe von Beiträgen hier auf SO sowie im Internet gelesen (IIS-Blogs usw.). Ich versuche, alle Verbindungen von domain.com zu www.domain.com zu erzwingen und gleichzeitig die Anforderung von HTTP zu HTTPS zu erzwingen .

Ich verwende diesen Regelsatz und schreibe neu, aber das Einzige, was passiert, ist, dass die Weiterleitung in Ordnung ist, aber nicht auf SSL umgeleitet wird.

<!-- Redirect to HTTPS -->
<rewrite>
    <rules>
        <rule name="Redirect to www" stopProcessing="true">
            <match url="(.*)" />
            <conditions trackAllCaptures="false">
                <add input="{HTTP_Host}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" />
            </conditions>
            <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" />
        </rule>
    </rules>
    <rewriteMaps>
        <rewriteMap name="MapProtocol" defaultValue="http">
          <add key="on" value="https" />
          <add key="off" value="http" />
        </rewriteMap>
    </rewriteMaps>
</rewrite>

Was mache ich falsch?

Haupt-Blog-Referenz: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action und dieses SO post - web. Konfigurationsumleitung von Nicht-WWW nach WWW

6
Valien

Edit: Also fand ich diesen Blog-Beitrag: http://www.meltedbutter.net/wp/?p=231 und probierte es aus und voila! Lief wie am Schnürchen. Ich bin mir nicht sicher, warum dies über die oben angegebenen Regeln hinausging, aber in meinem Fall funktioniert das Folgende und nimmt den gesamten Nicht-WWW-Verkehr erfolgreich auf und leitet ihn zu beiden um: www und https .

<!-- Redirect to HTTPS -->
        <rewrite>
            <rules>
                <rule name="http to https" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="SeeOther" />
                </rule>
            </rules>
        </rewrite>
10
Valien

Wir hatten das gleiche Problem beim Umleiten von http zu https mit dem URL Rewrite-Modul, aber nach dem Ausschalten des require ssl-Moduls in IIS hat es geschafft.

  1. Gehen Sie zu den SSL-Einstellungen der Website
  2. Deaktivieren Sie das Kontrollkästchen SSL erforderlich.
  3. Übernehmen Sie die Einstellungen und starten Sie iis neu
2

Dies ist in einigen Fällen ein langer Versuch, aber ich hatte meine Port 80-Bindungen für die Website gelöscht, da ich nur SSL/Port 443 wollte. Aus meiner Sicht ist also auch die Port 80-Bindung erforderlich, damit das Neuschreiben ordnungsgemäß funktioniert.

1
Enkode