IIS 7.5 URL Rewrite to HTTPS funktioniert nicht vollständig

1179
Gforse

In letzter Zeit habe ich ein SSL-Zertifikat für eine Website auf einem IIS 7.5-Webserver installiert. Dann habe ich eine URL-Umschreibungsregel eingerichtet, um HTTP in HTTPS umzuschreiben. Bis auf eine Sache funktioniert bisher fast alles. Wenn ich die Domäne eingebe und dann / sprache wie / en, funktioniert die URL-Umschreibung nicht. Die Website läuft auf Drupal 7. Wenn ich beispielsweise auf die Kontaktseite wie www.domain.com/contact gehe, wird die URL von Drupal auf www.domain.com/language (wie EN von FR usw.) umgeschrieben. ) / Kontakt wird die Sprache von der Browsersprache erkannt. Ich denke, diese Umschreibung führt dazu, dass die URL-Umschreiberegel fehlschlägt oder die URL-Anforderung ignoriert, also keine HTTP-zu-HTTPS-Umleitung.

Aber wenn ich zuerst die Homepage besuche: www.domain.com und dann auf die Menüschaltflächen klicken, um zur Kontaktseite zu gelangen, funktioniert alles. HTTP wird zu HTTPS umgeleitet. Dies ist darauf zurückzuführen, dass die Sprachumleitung bereits durchgeführt wurde, damit das URL-Umschreibungsmodul die neue URL-Umschreibungsanforderung verarbeiten kann.

Dies ist die Regel, die ich verwende. Ich habe viele verschiedene Ergebnisse ausprobiert.

 <rule name="HTTP to HTTPS redirect" enabled="false" stopProcessing="true"> <match url="http://(.*)" /> <conditions> <add input="" pattern="^OFF$" /> </conditions> <action type="Redirect" redirectType="Permanent" url="https:///" /> </rule> 

ODER

 <rule name="HTTP to HTTPS redirect2" stopProcessing="true"> <match url="(.*)" /> <!-- Require SSL must be OFF in the site settings --> <conditions> <add input="" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https://" /> </rule> 
0
Enthält in Ihrer ersten Regel nicht der Hostname ? Gerard H. Pille vor 6 Jahren 0
Ich kann in den Request-Headern sehen, dass der Host = www.example.com. In den allgemeinen Kopfzeilen lautet die Anforderungs-URL jedoch https://www.example.com/language. Ich habe auch `` oder `` versucht, um die oberste Ebene zu erreichen, aber keinen Effekt. Gforse vor 6 Jahren 0
Die Aktions-URL in der ersten Regel hätte "https: // " sein sollen, mehr nicht. Aktivieren Sie die Ablaufverfolgung für fehlgeschlagene Anforderungen (https://docs.microsoft.com/de-de/iis/extensions/url-rewrite-module/ using-failed-request-tracing-to-trace-rewrite-rules) und schauen Sie, was passiert mit deinen Regeln. Gerard H. Pille vor 6 Jahren 0

0 Antworten auf die Frage