Я пытаюсь заставить URL-адреса переписываться для работы в сочетании с маршрутизацией MVC / конечной точки. Вот соответствующие части моего метода Startup.Configure:
app.UseRewriter(new RewriteOptions().Add(new RewriteRuleTest()));
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
И RewriteRuleTest:
public class RewriteRuleTest : IRule
{
public void ApplyRule(RewriteContext context)
{
HttpRequest request = context.HttpContext.Request;
if (request.Path.Value.ToLower() == "/index")
{
request.Path = "/Home/Privacy";
context.Result = RuleResult.SkipRemainingRules;
}
}
}
Это похоже на то, что рекомендуется, но я получаю 404, когда нажимаю /индекс. Я могу достичь точки останова, установленной внутри оператора if выше. Я также могу перейти непосредственно к / Home / Privacy, и это прекрасно работает. Я перепробовал все три варианта RuleResult. Почему перезапись не будет обслуживать измененный URL?