3 votes

réécriture d'url sans nom de page

Je veux acheminer ces 3 chemins vers le chemin de l'url de base par défaut.

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

Je veux que ces 3 pages apparaissent dans la barre d'adresse comme ceci : www.mysite.com

Il n'y a que ces 3 pages dans mon projet asp.net.

Comment puis-je faire cela dans asp.net 3.5 sp1 avec 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;             
            }
  }

Avec ce code, une erreur s'est produite :

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

Le problème est de réécrire l'url. Il cherche le fichier default.aspx. Il n'y a pas de fichier default.aspx. Il y a un fichier page1.aspx.

Pourquoi cherche-t-il default.aspx ? Je veux juste réécrire le chemin

0voto

Carson63000 Points 3037

Votre appel à HttpContext.Current.RewritePath dit "si quelqu'un demande /page1.aspx (ou /page2.aspx ou /page3.aspx ), les servir ~/default.aspx au lieu de ".

Naturellement, si ~/default.aspx n'existe pas, un message 404 sera envoyé.

Qu'est-ce que vous essayez de faire ? Vous dites que vous "voulez acheminer ces 3 chemins vers le chemin de l'url de base par défaut", mais qu'est-ce que cela signifie ? est ce chemin si ~/default.aspx n'existe pas ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X