перезапись URL без имени страницы - PullRequest
3 голосов
/ 23 февраля 2011

Я хочу направить эти 3 пути к базовому пути URL по умолчанию.

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

Я хочу отобразить эти 3 страницы в адресной строке следующим образом: www.mysite.com

В моем проекте asp.net есть только эти 3 страницы.

Как я могу сделать это в asp.net 3.5 sp1 с IIS 6.0.

 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

Проблема в переписывании URL. Он ищет файл default.aspx. Нет файла default.aspx. Есть файл page1.aspx.

Почему он ищет default.aspx? Я просто хочу переписать путь ..

1 Ответ

0 голосов
/ 23 февраля 2011

Ваш звонок на HttpContext.Current.RewritePath говорит: «Если кто-то попросит /page1.aspx (или /page2.aspx или /page3.aspx), вместо этого подайте ему ~/default.aspx».

Естественно, если ~/default.aspx нене существует, это бросит 404.

Что вы пытаетесь сделать?Вы говорите, что «хотите направить эти 3 пути к базовому пути URL по умолчанию», но что означает этот путь, если ~/default.aspx не существует?

...