我在 .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
会导致重定向?