Share via


IIS:UrlRewrite 中介軟體查詢字串已保留

某項 IIS UrlRewrite 中介軟體瑕疵導致查詢字串無法保留在重寫規則中。 該瑕疵已修正,以維持 IIS UrlRewrite 模組行為的一致性。

如需討論,請參閱問題 dotnet/aspnetcore#22972 (英文)

導入的版本

ASP.NET Core 5.0

舊的行為

請考慮下列重寫規則:

<rule name="MyRule" stopProcessing="true">
  <match url="^about" />
  <action type="Redirect" url="/contact" redirectType="Temporary" appendQueryString="true" />
</rule>

上述規則不會附加查詢字串。 類似 /about?id=1 的 URI 會重新導向至 /contact,而不是 /contact?id=1appendQueryString 屬性同樣預設為 true

新的行為

查詢字串會保留。 舊行為中的範例 URI 為 /contact?id=1

變更原因

舊行為不符合 IIS UrlRewrite 模組的行為。 其目標是要維持行為一致,以便支援中介軟體與模組之間的移植作業。

若偏好移除查詢字串的行為,請將 action 元素設為 appendQueryString="false"

受影響的 API

IISUrlRewriteOptionsExtensions.AddIISUrlRewrite