为什么 AddRewrite 在 ASP.NET Core 7.0 中重定向(HTTP 301)?

问题描述 投票:0回答:0

我在 .NET ASP Core 中添加了重写规则,但它似乎正在重定向。我认为

AddRewrite
的全部意义在于对 HTTP 客户端不可见。

这是我的整个文件:

using System.Collections.Generic;
using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Configuration;
using MyProject.Preview.Configuration;
using Microsoft.AspNetCore.Rewrite;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.UseHttpLogging();

 var options = new RewriteOptions()
        .AddRewrite(@"^p/([a-zA-Z0-9]*)/w/([a-zA-Z0-9-]*)", "/preview/$1/workspace/$2/wwwroot",
            skipRemainingRules: true)
        .AddRewrite(@"^preview/([a-zA-Z0-9]*)/workspace/([a-zA-Z0-9-]*)", "/preview/$1/workspace/$2/wwwroot",
            skipRemainingRules: true);
    app.UseRewriter(options);

app.UseDefaultFiles(new DefaultFilesOptions
{
        FileProvider = new PhysicalFileProvider(
            Path.Combine(builder.Configuration.GetSection("Pad").GetValue<string>(nameof(PadConfiguration.StorageRootPath)), "artifacts")),
        RequestPath = "/preview",
    DefaultFileNames =new List<string> { "index.html" }
});
app.UseStaticFiles(new StaticFileOptions
{
        FileProvider = new PhysicalFileProvider(
            Path.Combine(builder.Configuration.GetSection("Pad").GetValue<string>(nameof(PadConfiguration.StorageRootPath)), "artifacts")),
        RequestPath = "/preview",
        ServeUnknownFileTypes = true,
});


app.Run();

CURL 输出:

curl -I http://localhost:5033/p/d8f7i885d/w/583bdffe-09bd-4a03-8b4e-5006f743c617
HTTP/1.1 301 Moved Permanently
Date: Wed, 26 Jul 2023 04:52:22 GMT
Server: Kestrel
Location: http://localhost:5033/preview/d8f7i885d/workspace/583bdffe-09bd-4a03-8b4e-5006f743c617/wwwroot/

为什么

RewriteOptions
会导致重定向?

asp.net-core http url-rewriting
© www.soinside.com 2019 - 2024. All rights reserved.