在asp.net中重写URL

时间:2011-07-07 16:59:54

标签: asp.net url rewrite

我有一个网站,一旦登录就会导航到另一个域。 我需要通过删除URL的aspx页面并添加它导航到的域名来重新编写url。我还想在https页面中重写URL,该页面将从http页面重定向。 例如: - 从网站www.xyz.com它已被重定向到www.abc.com.so网址应显示为www.abc.com/xyz 任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

这通常在ASP.NET MVC中完成,这称为ASP.NET Routing。这也适用于ASP.NET WebForms。

您还可以使用名为IIS Rewrite的IIS模块,如果您知道它是如何工作的,这有点像Apaches mod_rewrite。

Here是关于如何使其发挥作用的教程。

从MSDN关于ASP.NET路由:

  

在Web窗体应用程序中,您创建   使用的路线   MapPageRoute(String,String,String)   RouteCollection类的方法。   MapPageRoute方法创建一个   路由对象并将其添加到   RouteCollection对象。你指定   Route对象的属性   您传递给的参数   MapPageRoute方法。

     

通常,您在方法中添加路线   从处理程序调用   中的Application_Start事件   Global.asax文件。这种方法使   确保路线可用   当应用程序启动时。它也是   使您可以调用该方法   直接在你进行单元测试时   应用。如果你想打电话给   单元测试时直接的方法   应用程序,注册方法   路由必须是静态的(共享在   Visual Basic)并且必须有一个   RouteCollection参数。

     

以下示例显示了代码   添加路由的Global.asax文件   定义两个URL参数的对象   命名动作和categoryName。网址   具有指定模式的是   定向到名为的物理页面   Categories.aspx。

这是你的Global.asax:

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("",
        "Category/{action}/{categoryName}",
        "~/categoriespage.aspx");
}

答案 1 :(得分:1)

您可以使用URL重写模块。这里有一些例子:

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/