IIS: as cadeias de caracteres de consulta de middleware UrlRewrite são preservadas
Um defeito de middleware UrlRewrite do IIS impedia que a cadeia de caracteres de consulta fosse preservada nas regras de regravação. Esse defeito foi corrigido para manter a consistência com o comportamento do Módulo UrlRewrite do IIS.
Para discussão, consulte o problema dotnet/aspnetcore#22972.
Versão introduzida
ASP.NET Core 5.0
Comportamento antigo
Considere a seguinte regra de regravação:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
A regra anterior não acrescenta a cadeia de caracteres de consulta. Um URI como /about?id=1
redireciona para /contact
vez de /contact?id=1
. O atributo appendQueryString
também assume o padrão true
.
Novo comportamento
A cadeia de caracteres de consulta é preservada. O URI do exemplo no Comportamento antigo seria /contact?id=1
.
Motivo da alteração
O comportamento antigo não correspondia ao comportamento do Módulo UrlRewrite do IIS. Para oferecer suporte à portabilidade entre o middleware e o módulo, a meta é manter comportamentos consistentes.
Ação recomendada
Se o comportamento de remoção da cadeia de caracteres de consulta for preferencial, defina o elemento action
como appendQueryString="false"
.