IIS: le stringhe di query del middleware UrlRewrite vengono mantenute
Un difetto del middleware URLRewrite IIS impediva la conservazione della stringa di query nelle regole di riscrittura. Questo difetto è stato risolto per mantenere la coerenza con il comportamento del modulo UrlRewrite IIS.
Per informazioni, vedi il problema dotnet/aspnetcore#22972.
Versione introdotta
ASP.NET Core 5.0
Comportamento precedente
Considera la regola di riscrittura seguente:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
La regola precedente non accoda la stringa di query. Un URI come /about?id=1
reindirizza a /contact
anziché a /contact?id=1
. Anche l'attributo appendQueryString
è impostato come predefinito su true
.
Nuovo comportamento
La stringa di query viene mantenuta. L'URI dell'esempio in Comportamento precedente sarebbe /contact?id=1
.
Motivo della modifica
Il comportamento precedente non corrisponde al comportamento del modulo UrlRewrite IIS. Per supportare la conversione tra il middleware e il modulo, l'obiettivo è mantenere comportamenti coerenti.
Azione consigliata
Se si preferisce il comportamento che rimuove la stringa di query, impostare l'elemento action
su appendQueryString="false"
.