IIS 7 Url Rewrite nur für Port 80

3850
Captain Cosmodrome

Ich habe eine Website, auf der der an Port 80 eingehende Datenverkehr an Port 443 (https) umgeleitet werden muss. Laut diesem Artikel ist das einfach genug und es funktioniert. Mein Problem ist jedoch, dass dies eine Umgebung mit Lastausgleich ist. Ich möchte einen nicht standardmäßigen Port hinter meiner Firewall eröffnen, damit ich, wenn mein Server aus dem Load Balancer ausfällt, meinen Code pushen und ihn mit http: // myip: XXXX über http am nicht standardmäßigen Port testen kann, ohne dass er https erzwingt .

Die in diesem Artikel verwendete Regel lautet wie folgt

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

Wie kann ich dies so anpassen, dass es nur für Port 80 umleitet (oder für meinen Testport nicht umleitet)?

2

2 Antworten auf die Frage

1
Ian Grainger

Ich habe gerade diese Regel für einen bestimmten Port mit einer negierten Bedingung für die Variable SERVER_PORT ( docs ) deaktiviert . Für Port XXXX:

<rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="" pattern="off" ignoreCase="true" /> <add input="" pattern="XXXX" negate="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https:///" /> </rule> 
0
Ƭᴇcʜιᴇ007

Die Datei web.config ist standortzentriert (bzw. verzeichniszentriert in dem Verzeichnis, in dem sie sich befindet), unabhängig davon, an welchem ​​Port Sie sie anschlagen.

Der Trick (und ich habe das noch nie in Bezug auf Ports getan) wird darin bestehen, Ihre URL-Übereinstimmungsregel so zu ändern, dass sie mit URL-Anforderungen übereinstimmt, die auf enden :80. Meine erste Vermutung wäre, dass es (.*:80)funktionieren könnte, es zu ändern .