Wenn ich eine URL von http auf https umleite, wird in Browsern ein Verbindungsresetfehler angezeigt. Ich versuche, das Problem zu lokalisieren, habe nachgeschaut C:\Windows\System32\LogFiles\HTTPERR
und sehe im Protokoll nur Timer_ConnectionIdle
Fehler. Soweit ich herausfinden konnte, haben diese keinen Zusammenhang.
Es befinden sich keine Protokolle im FailedReqLogFiles
Ordner und ich sehe darin nichts außer Zugriffsprotokollen W3SVC1
.
Ich weiß überhaupt nicht, wie ich weitermachen soll. Hier ist meine Umleitungsregel.
URL abgleichen
Angeforderte URL: Entspricht dem Muster
unter Verwendung von:
Muster für reguläre Ausdrücke: .*
und Groß-/Kleinschreibung ignorieren
Bedingungen
Logische Gruppierung: Alle
Eingaben abgleichen: {HTTPS}
Typ: Entspricht dem Muster
Muster: aus
Servervariablen
Leer
Aktion
Aktionstyp: Umleitung
Umleitungs-URL: https://{SERVER_NAME}/{R:0}
Abfragezeichenfolge anhängen: aktiviert
Umleitungstyp: Permanent (301)
Antwort1
Dieser Ausschnitt web.config
funktioniert bei mir.
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
Der Hauptunterschied zwischen dieser und Ihrer Konfiguration scheint HTTP_HOST
vs. zu sein SERVER_NAME
. Ich verwende das Ersetzungsmuster, R:1
während Sie verwenden R:0
, aber das lässt sich dadurch erklären, wie ich mein Übereinstimmungsmuster als (.*)
statt definiert habe .*
.