在 asp.net 3.5 中重写 URL 而不带 IIS
本文关键字:URL IIS 重写 asp net | 更新日期: 2023-09-27 18:37:10
我正在使用 asp.net 3.5 版本中的应用程序 asp.net 该应用程序。我需要实现 URL 重写。我已经定义了 4 个页面,例如
www.abc.com/page1.aspx
www.abc.com/page2.aspx
www.abc.com/page3.aspx
www.abc.com/page4.aspx
我希望当用户键入 www.abc.com/language1 然后www.abc.com/page1.aspx 打开。如果用户键入 www.abc.com/language2,则应打开 www.abc.com/page2.aspx。
请提出解决方案。
此外,由于该站点是完整的并且通过电子邮件向用户发送链接(并且某些链接具有查询字符串),将用户重定向到没有查询字符串的新 URL 并使用新模式生成新链接的最佳方法是什么?
我已经经历了以下技术:
http://www.iis.net/downloads/microsoft/url-rewrite(这是IIS,我可以在 asp.net 3.5和没有IIS的情况下使用它吗?
ASP.NET 以非常简单的方式重写 URL (它没有经过安全问题测试)
http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx (这需要更改现有链接?
请建议
public class Global : System.Web.HttpApplication
{
void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("language2", new PageRouteHandler("~/page2.aspx")));
}
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
}
Global.asax 文件中的 Application_BeginRequest 下执行此操作,检查请求是否来自指定的 URL,然后将用户重定向到另一个页面,例如:if(Request.Url.ToString()。ToLower()。包含("language1.aspx"),然后是 Response.Redirect("Page1.aspx") 。