IIS: Řetězce dotazů middlewaru UrlRewrite se zachovají.
Chyba middlewaru URLRewrite služby IIS zabránila zachování řetězce dotazu v pravidlech přepsání. Tato chyba byla opravena, aby se zachovala konzistence s chováním modulu URLRewrite služby IIS.
Diskuzi najdete v tématu problému dotnet/aspnetcore#22972.
Zavedená verze
ASP.NET Core 5.0
Staré chování
Zvažte následující pravidlo přepsání:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
Předchozí pravidlo nepřidá řetězec dotazu. Identifikátor URI, jako /about?id=1
je přesměrování místo /contact
/contact?id=1
. Výchozí appendQueryString
hodnota atributu true
je také.
Nové chování
Řetězec dotazu se zachová. Identifikátor URI z příkladu ve starém chování by byl /contact?id=1
.
Důvod změny
Původní chování neodpovídá chování modulu URLRewrite služby IIS. Cílem podpory přenosu mezi middlewarem a modulem je udržovat konzistentní chování.
Doporučená akce
Pokud je upřednostňované chování odebrání řetězce dotazu, nastavte action
prvek na appendQueryString="false"
.