IIS: UrlRewrite-frågesträngar för mellanprogram bevaras
En IIS UrlRewrite-mellanprogramsdefekt förhindrade att frågesträngen bevarades i omskrivningsregler. Den defekten har åtgärdats för att upprätthålla konsekvens med IIS UrlRewrite-modulens beteende.
Mer information finns i problem med dotnet/aspnetcore#22972.
Version introducerad
ASP.NET Core 5.0
Gammalt beteende
Överväg följande omskrivningsregel:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
Föregående regel lägger inte till frågesträngen. En URI som /about?id=1
omdirigeras till i stället /contact?id=1
för /contact
. Attributet appendQueryString
är true
också standard.
Nytt beteende
Frågesträngen bevaras. URI:n från exemplet i Gammalt beteende skulle vara /contact?id=1
.
Orsak till ändringen
Det gamla beteendet matchade inte IIS UrlRewrite-modulens beteende. För att stödja portning mellan mellanprogram och modul är målet att upprätthålla konsekventa beteenden.
Rekommenderad åtgärd
Om du föredrar att ta bort frågesträngen anger du elementet action
till appendQueryString="false"
.