IIS: String kueri middleware UrlRewrite dipertahankan
Cacat middleware IIS UrlRewrite mencegah string kueri dipertahankan dalam aturan penulisan ulang. Cacat tersebut telah diperbaiki untuk menjaga konsistensi dengan perilaku Modul UrlRewrite IIS.
Untuk diskusi, lihat masalah dotnet/aspnetcore#22972.
Versi yang diperkenalkan
ASP.NET Core 5.0
Perilaku yang lama
Pertimbangkan aturan penulisan ulang berikut:
<rule name="MyRule" stopProcessing="true">
<match url="^about" />
<action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>
Aturan sebelumnya tidak menambahkan string kueri. URI seperti /about?id=1
mengalihkan ke /contact
alih-alih /contact?id=1
. Atribut appendQueryString
default ke true
juga.
Perilaku yang baru
String kueri dipertahankan. URI dari contoh dalam Perilaku lama adalah /contact?id=1
.
Alasan untuk berubah
Perilaku lama tidak cocok dengan perilaku Modul UrlRewrite IIS. Untuk mendukung porting antara middleware dan modul, tujuannya adalah untuk mempertahankan perilaku yang konsisten.
Tindakan yang direkomendasikan
Jika perilaku menghapus string kueri lebih disukai, atur elemen ke action
appendQueryString="false"
.