2010-01-21 13 views

Répondre

4
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e) 
{ 
    string currentUrl = HttpContext.Current.Request.Path.ToLower(); 
    if(currentUrl.StartsWith("http://mydomain")) 
    { 
    Response.Status = "301 Moved Permanently"; 
    Response.AddHeader("Location", currentUrl.Replace("http://mydomain", "http://www.mydomain")); 
    Response.End(); 
    } 
} 
+0

Bonjour, je trouve que le gestionnaire PreRequest n'existait pas dans le global.asax donc je l'ai ajouté que vous proposez. Mais l'événement n'est pas déclenché en mode debug ... Je fais autre chose de mal ici? – OrElse

+0

Est-ce qu'il se déclenche lorsque vous changez 'PreRequestHandlerExecute' en' BeginRequest'? –

+0

Yeap! Le BeginRequest se déclenche dans chaque requête – OrElse

9

Quelques modifications mineures à la réponse de Jan a, il travaille pour moi:

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 
    string currentUrl = HttpContext.Current.Request.Url.ToString().ToLower(); 
    if (currentUrl.StartsWith("http://mydomain")) 
    { 
     Response.Status = "301 Moved Permanently"; 
     Response.AddHeader("Location", currentUrl.Replace("http://mydomain", "http://www.mydomain")); 
     Response.End(); 
    } 
} 

Les changements devaient utiliser l'événement BeginRequest et de mettre à CURRENTURL HttpContext.Current.Request.Url au lieu de HttpContext .Current.Request.Path. Voir:

http://www.mycsharpcorner.com/Post.aspx?postID=40