IIS: Abfragezeichenfolgen für die UrlRewrite-Middleware werden beibehalten
Ein Fehler bei der IIS-UrlRewrite-Middleware hat verhindert, dass die Abfragezeichenfolge in Neuschreibungsregeln beibehalten wird. Dieser Fehler wurde behoben, um Konsistenz mit dem Verhalten des IIS-UrlRewrite-Moduls sicherzustellen.
Weitere Informationen finden Sie im Issue dotnet/aspnetcore#22972.
Eingeführt in Version
ASP.NET Core 5.0
Altes Verhalten
Sehen Sie sich die folgende Neuschreibungsregel an:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
Die obige Regel fügt die Abfragezeichenfolge nicht an. Bei einem URI wie /about?id=1
findet eine Weiterleitung zu /contact
anstelle von /contact?id=1
statt. Außerdem ist das Attribut appendQueryString
standardmäßig auf true
festgelegt.
Neues Verhalten
Die Abfragezeichenfolge wird beibehalten. Der URI aus dem Beispiel unter Altes Verhalten wäre dann /contact?id=1
.
Grund für die Änderung
Das alte Verhalten entsprach nicht dem des IIS-UrlRewrite-Moduls. Damit ein Übertragen zwischen Middleware und Modul unterstützt wird, soll ein konsistentes Verhalten gewährleistet sein.
Empfohlene Aktion
Wenn Sie das Entfernen der Abfragezeichenfolge als Verhalten bevorzugen, legen Sie im action
-Element appendQueryString="false"
fest.