url重写没有页面名称

时间:2011-02-23 10:28:57

标签: c# iis-6 url-rewriting asp.net-3.5 url-routing

我想将这3条路径路由到默认的基本网址路径。

www.mysite.com/page1.aspx
www.mysite.com/page2.aspx
www.mysite.com/page3.aspx

我想在地址栏中显示这3页,如下所示:www.mysite.com

我的asp.net项目中只有这三页。

如何在IIS 6.0的asp.net 3.5 sp1中执行此操作。

 void Application_BeginRequest(object sender, EventArgs e)
 {
            switch (HttpContext.Current.Request.Url.AbsolutePath.ToLower())
            { 
                case "/page1.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;                
                 case "/page2.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;                 
                 case "/page3.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;             
            }
  }

使用此代码时出现错误:

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /default.aspx

问题在于重写网址。它正在搜索default.aspx文件。没有default.aspx文件。有page1.aspx文件。

为什么要搜索default.aspx?我只想重写路径..

1 个答案:

答案 0 :(得分:0)

您拨打HttpContext.Current.RewritePath的电话是“如果有人要求/page1.aspx(或/page2.aspx/page3.aspx),请代替他们~/default.aspx

当然,如果~/default.aspx不存在,则会抛出404。

你想做什么?您说您“想要将这3条路径路由到默认的基本网址路径”,但如果~/default.aspx不存在, 该路径是什么?