diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs b/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs index 2221d5412b..012cc77ded 100644 --- a/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs +++ b/src/Microsoft.AspNetCore.Rewrite/Internal/IISUrlRewrite/RedirectType.cs @@ -1,13 +1,15 @@ // 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 Microsoft.AspNetCore.Http; + namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite { public enum RedirectType { - Permanent = 301, - Found = 302, - SeeOther = 303, - Temporary = 307 + Permanent = StatusCodes.Status301MovedPermanently, + Found = StatusCodes.Status302Found, + SeeOther = StatusCodes.Status303SeeOther, + Temporary = StatusCodes.Status307TemporaryRedirect } } diff --git a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs b/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs index 9c917ed9a7..06eba46b04 100644 --- a/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs +++ b/src/Microsoft.AspNetCore.Rewrite/Internal/UrlActions/RedirectAction.cs @@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions QueryString.FromUriComponent( pattern.Substring(split))); - // not using the response.redirect here because status codes may be 301, 302, 307, 308 + // not using the response.redirect here because status codes may be 301, 302, 307, 308 response.Headers[HeaderNames.Location] = pathBase + pattern.Substring(0, split) + query; } else diff --git a/src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs b/src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs index 550d6e8211..c1aa2b69ed 100644 --- a/src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs +++ b/src/Microsoft.AspNetCore.Rewrite/RewriteOptionsExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Rewrite.Internal; namespace Microsoft.AspNetCore.Rewrite @@ -58,7 +59,7 @@ namespace Microsoft.AspNetCore.Rewrite /// The Rewrite options. public static RewriteOptions AddRedirect(this RewriteOptions options, string regex, string replacement) { - return AddRedirect(options, regex, replacement, statusCode: 302); + return AddRedirect(options, regex, replacement, statusCode: StatusCodes.Status302Found); } /// @@ -83,7 +84,7 @@ namespace Microsoft.AspNetCore.Rewrite /// public static RewriteOptions AddRedirectToHttpsPermanent(this RewriteOptions options) { - return AddRedirectToHttps(options, statusCode: 301, sslPort: null); + return AddRedirectToHttps(options, statusCode: StatusCodes.Status301MovedPermanently, sslPort: null); } /// @@ -92,7 +93,7 @@ namespace Microsoft.AspNetCore.Rewrite /// The . public static RewriteOptions AddRedirectToHttps(this RewriteOptions options) { - return AddRedirectToHttps(options, statusCode: 302, sslPort: null); + return AddRedirectToHttps(options, statusCode: StatusCodes.Status302Found, sslPort: null); } /// diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs b/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs index bf0669ce26..3b1d962751 100644 --- a/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs +++ b/test/Microsoft.AspNetCore.Rewrite.Tests/ApacheModRewrite/ModRewriteMiddlewareTest.cs @@ -247,7 +247,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite var response = await server.CreateClient().GetAsync(input); Assert.Equal(response.StatusCode, (HttpStatusCode)301); - Assert.Equal(response.Headers.Location.AbsoluteUri, @"https://www.example.com/foo/"); + Assert.Equal(@"https://www.example.com/foo/", response.Headers.Location.AbsoluteUri); } [Theory] diff --git a/test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs b/test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs index ce041ff52c..43853ddfe5 100644 --- a/test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs +++ b/test/Microsoft.AspNetCore.Rewrite.Tests/MiddlewareTests.cs @@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules [Fact] public async Task CheckRedirectPath() { - var options = new RewriteOptions().AddRedirect("(.*)","http://example.com/$1", statusCode: 301); + var options = new RewriteOptions().AddRedirect("(.*)","http://example.com/$1", statusCode: StatusCodes.Status301MovedPermanently); var builder = new WebHostBuilder() .Configure(app => { @@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules [Fact] public async Task CheckRedirectToHttps() { - var options = new RewriteOptions().AddRedirectToHttps(statusCode: 301); + var options = new RewriteOptions().AddRedirectToHttps(statusCode: StatusCodes.Status301MovedPermanently); var builder = new WebHostBuilder() .Configure(app => { @@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules [Fact] public async Task CheckIfEmptyStringRedirectCorrectly() { - var options = new RewriteOptions().AddRedirect("(.*)", "$1", statusCode: 301); + var options = new RewriteOptions().AddRedirect("(.*)", "$1", statusCode: StatusCodes.Status301MovedPermanently); var builder = new WebHostBuilder() .Configure(app => {