gpt4 book ai didi

c# - 无效路由的 URL 转发?

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:14 25 4
gpt4 key购买 nike

我正在升级旧的 asp.net webforms 站点。我想让 URL 看起来更好,所以我正在使用路由系统,如下所示:

void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("account settings",
"settings/account/",
"~/accountsettings.aspx");
}

这很好用。像 mydomain.com/settings/account/ 这样的网址看起来更好。但是,仍然可以使用其物理位置访问该页面,如 mydomain.com/accountsettings.aspx。我想将对这些旧形式网址的请求转发到我的新网址。

执行此操作的最佳方法是什么?有没有我可以使用的简单方法,例如 RegisterRoutes

最佳答案

我相信您需要让路由引擎知道使用 IgnoreRoute 忽略物理文件的路由:

routes.IgnoreRoute("accountsettings.aspx");

请仔细检查 IgnoreRoute 的语法,因为我不记得您是否需要包含相对路径或仅包含文件名。

一旦你完成了这项工作,你就可以捕获它将生成的 404,可能在 global.asax 的全局错误处理程序中,如果那是请求的路径,则重定向。这篇博文有一个如何在全局错误处理程序中捕获 404 的示例:http://www.andornot.com/blog/post/Handling-404-errors-with-ASPNET.aspx

如果这是一个公共(public)站点并且您关心 SEO,您可能还需要考虑使用 http 状态代码 301 指定它是一个永久重定向。这将告诉 Google 和其他搜索引擎旧页面现在存在于新位置,您不会失去该页面的值(value)。

希望对您有所帮助!

关于c# - 无效路由的 URL 转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com