diff --git a/src/Middleware/Rewrite/src/IISUrlRewrite/UrlRewriteFileParser.cs b/src/Middleware/Rewrite/src/IISUrlRewrite/UrlRewriteFileParser.cs index 7597752744..25f4c57f62 100644 --- a/src/Middleware/Rewrite/src/IISUrlRewrite/UrlRewriteFileParser.cs +++ b/src/Middleware/Rewrite/src/IISUrlRewrite/UrlRewriteFileParser.cs @@ -219,7 +219,7 @@ namespace Microsoft.AspNetCore.Rewrite.IISUrlRewrite else { var redirectType = ParseEnum(urlAction, RewriteTags.RedirectType, RedirectType.Permanent); - action = new RedirectAction((int)redirectType, urlPattern, appendQuery); + action = new RedirectAction((int)redirectType, urlPattern, appendQuery, !appendQuery, escapeBackReferences: false); } break; case ActionType.AbortRequest: diff --git a/src/Middleware/Rewrite/src/UrlActions/RedirectAction.cs b/src/Middleware/Rewrite/src/UrlActions/RedirectAction.cs index 4c271cae4a..128a3036c1 100644 --- a/src/Middleware/Rewrite/src/UrlActions/RedirectAction.cs +++ b/src/Middleware/Rewrite/src/UrlActions/RedirectAction.cs @@ -28,19 +28,6 @@ namespace Microsoft.AspNetCore.Rewrite.UrlActions EscapeBackReferences = escapeBackReferences; } - public RedirectAction( - int statusCode, - Pattern pattern, - bool queryStringAppend) - : this( - statusCode, - pattern, - queryStringAppend, - queryStringDelete: true, - escapeBackReferences: false) - { - } - public override void ApplyAction(RewriteContext context, BackReferenceCollection ruleBackReferences, BackReferenceCollection conditionBackReferences) { var pattern = Url.Evaluate(context, ruleBackReferences, conditionBackReferences); @@ -58,7 +45,6 @@ namespace Microsoft.AspNetCore.Rewrite.UrlActions return; } - if (pattern.IndexOf("://", StringComparison.Ordinal) == -1 && pattern[0] != '/') { pattern = '/' + pattern; diff --git a/src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs b/src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs index 35df2b5c56..a11410d0ac 100644 --- a/src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs +++ b/src/Middleware/Rewrite/test/IISUrlRewrite/MiddleWareTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -399,7 +399,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite var response = await server.CreateClient().GetAsync("article/23?p1=123&p2=abc"); - Assert.Equal("/blogposts/article/abc", response.Headers.Location.OriginalString); + Assert.Equal("/blogposts/article/abc?p1=123&p2=abc", response.Headers.Location.OriginalString); } [Fact] @@ -427,7 +427,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite var response = await server.CreateClient().GetAsync("article/23?p1=123&p2=abc"); - Assert.Equal("/blog/article/23/abc", response.Headers.Location.OriginalString); + Assert.Equal("/blog/article/23/abc?p1=123&p2=abc", response.Headers.Location.OriginalString); } [Fact]