Es wird versucht, HTTP an HTTPS (C #, IIS) umzuleiten, aber HTTPS wird in Antwortheadern - Umleitungsschleife - wieder auf HTTP umgestellt

9

Ich habe zwei IIS-Websites auf demselben IIS-Server eingerichtet. Website A enthält den größten Teil des Inhalts, und dies ist, was Benutzer angezeigt werden, wenn sie unsere Adresse anfordern (z. B. www.websitea.com). Website B ist ein separates Projekt, das nur einen Teil des gesamten Inhalts enthält. Es ist also intern (gebunden in IIS an websiteb.com), aber durch einen URL-Rewrite können Benutzer dazu über www.websitea.com/websiteb gelangen .

Das URL-Rewrite sieht in web.config der Webseite A wie folgt aus:

%Vor%

Die Bits {CACHE_URL} und {C: 1} sollen das verwendete Protokoll beibehalten. Z.B. Ein Benutzer, der www.websitea.com/websiteb/foo.html auf HTTP anfordert, wird auf websiteb.com/foo.html auf HTTP "umgeschrieben" und eine Anfrage an websitea.com/websiteb/bar.html auf HTTPS wird "umgeschrieben". zu websiteb.com/bar.html auf HTTPS.

Nun möchten wir, dass bei einigen Webseiten B der Benutzer nur HTTPS verwenden soll - dies ist in der ShouldBeHttps-Eigenschaft des SomePageViewModels festgelegt. Daher wird der folgende Code in einem ActionFilterAttribute verwendet:

%Vor%

Nehmen wir an, www.websitea.com/websiteb/securepage.html führt zu einem wahren Wert in der ShouldBeHttps-Eigenschaft.

Nun, wenn ich es direkt auf dem Server teste, indem ich unter http://website.com/securepage.html auf HTTP zugreife, werde ich korrekt auf websiteb.com/securepage.html auf HTTPS umgeleitet (Statuscode 302).

Ich würde erwarten, dass ich auf http://www.websitea.com/websiteb/securepage.html über HTTP auf www.websitea.com/websiteb/securepage.html auf HTTPS weitergeleitet werde. Meine Browser landen jedoch in einer Weiterleitungsschleife (ERR_TOO_MANY_REDIRECTS). Ich kann in Fiddler in der Registerkarte TextView sehen, dass es richtig eingerichtet scheint:

%Vor%

Aber die Registerkarte Header zeigt:

%Vor%

Also, anstatt zu https zu gehen, ist es wieder http und das trifft den Filter und so weiter.

Gibt es etwas, das mir fehlt? Ist es eine IIS-Einstellung?

    
patrykgliwinski 17.02.2016, 15:45
quelle

2 Antworten

-1

Probieren Sie diese Konfiguration aus. Funktioniert für meine Website

%Vor%     
Michael Samteladze 21.02.2016 09:30
quelle
-1

Dies ist meistens ein Fehler in IIS

1. Deaktivieren Sie den URL Rewrite Cache

2. Fügen Sie Ihrer Regel eine "unsichere" Variable hinzu

3.Löschen Sie Ihren Cache

Und am besten, wenn Sie es im Code tun können, ohne Rewrite zu verwenden

Je nachdem, welche Version von IIS Sie verwenden, könnte dies Ihren Fehler beheben:

x64

x86

KB2974666

    
Houssam Chehadi 28.02.2016 20:53
quelle