1

我正在作为 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。

请提出解决方案。

此外,由于这个站点是完整的并且有通过电子邮件发送给用户的链接(并且一些链接有查询字符串),将用户重定向到没有查询字符串的新网址并使用新模式生成新链接的最佳方法是什么?

我经历了以下技术:

http://www.iis.net/downloads/microsoft/url-rewrite(这是与 IIS,我可以使用它与 asp.net 3.5 和没有 IIS 吗?)

以非常简单的方式重写 ASP.NET URL(未针对安全问题进行测试)

http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx (这需要更改现有链接吗?)

请建议

4

2 回答 2

1
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);
    }
}
于 2013-10-29T08:51:46.427 回答
0

您可以在 Global.asax 文件中的 Application_BeginRequest 下执行此操作,检查请求是否来自指定的 URL,然后将用户重定向到另一个页面,例如:if(Request.Url.ToString().ToLower().Contains("language1.aspx" ) ,然后 Response.Redirect("Page1.aspx") 。

于 2013-10-29T08:58:41.103 回答