我已经将旧的ASP页面(www.company.com/index.asp)迁移到Blazor项目,我试图显示"未找到页面"对于通过"旧书签"访问网站的用户;比如www.company.com/contact.asp。
我已经在_host中尝试了。CSHTML重定向,但不满足条件。
@if ((Request.Path.ToString()?.Contains(".asp")).GetValueOrDefault())
{
LocalRedirect("/NotFound");
return;
}
我尝试添加@page指令@page "/{oldPage}.asp"
到NotFound blazor组件,但应用程序不渲染任何页面。
我宁愿解决*asp处理在应用程序本身,而不是在IIS或代理,因为我没有直接访问代理/IIS设置。
有什么提示如何解决这个问题吗?
解决方案是添加到Startup.csendpoints.MapGet("/{page}.asp", async x => { x.Response.Redirect("/NotFound"); });
完整片段:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
endpoints.MapGet("/{page}.asp", async x => { x.Response.Redirect("/NotFound"); });
});