IIS : Les chaînes de requête de l’intergiciel (middleware) UrlRewrite sont conservées
Un défaut d’intergiciel IIS UrlRewrite empêchait la conservation de la chaîne de requête dans les règles de réécriture. Ce défaut a été résolu pour maintenir la cohérence avec le comportement du module URLRewrite IIS.
Pour plus d’informations, consultez le problème dotnet/aspnetcore#22972.
Version introduite
ASP.NET Core 5.0
Ancien comportement
Considérez la règle de réécriture suivante :
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
La règle précédente n’ajoute pas la chaîne de requête. Un URI comme /about?id=1
redirige vers /contact
au lieu de /contact?id=1
. L’attribut appendQueryString
est également défini par défaut sur true
.
Nouveau comportement
La chaîne de requête est conservée. L’URI de l’exemple dans Ancien comportement serait /contact?id=1
.
Raison du changement
L’ancien comportement ne correspondait pas au comportement du module URLRewrite IIS. Pour prendre en charge le portage entre l’intergiciel et le module, l’objectif est de maintenir des comportements cohérents.
Action recommandée
Si le comportement de suppression de la chaîne de requête est préférable, définissez l’élément action
sur appendQueryString="false"
.