2009-05-12 6 views
0

J'ai un filtre WWW sur toutes mes actionsIIS7 déployé MVC ne redirige pas malgré WWWfilter

public class WwwFilter : ActionFilterAttribute, IActionFilter { 

    #region IActionFilter Members 

    void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) { 

    } 

    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) { 

     var request = filterContext.HttpContext.Request; 
     var response = filterContext.HttpContext.Response; 

     if (request.Url.Host.StartsWith("www")) { 
      string newPort = request.Url.IsDefaultPort ? "" : ":" +request.Url.Port.ToString(); 
      string newUrl = request.Url.Scheme + "://" +request.Url.Host.Replace("www.", "") + newPort + request.Url.AbsolutePath; 
      filterContext.Result = new RedirectResult(newUrl); 

     } 
    } 

    #endregion 
} 

pour mon site, http://www.tweetMP.org.au

Le www est pas filtré pour la page d'accueil, ou une partie de les autres pages

Si vous visitez sur le site en utilisant le menu, éventuellement www disparaîtront comme le filtre entre dans.

Je ne sais pas pourquoi ce arrive. Des idées? MISE À JOUR: cela semble être quelque chose à voir avec le OutputCache sur chaque action que je fais aussi. Quelle est la bonne façon de filtrer WWW dans un environnement de confiance moyenne?

Répondre

1

Je voudrais utiliser la prise en charge IIS7 URL Rewrite Module intégrée pour les redirections. En outre, il peut également être mis en cache dans le navigateur client ... Si vous effectuez une actualisation forcée (Maj + F5), la redirection fonctionne-t-elle? Au-delà, si vous voulez faire des optimisations de performances dans les sous-domaines pour les images, les scripts et les CSS, vous pouvez conserver le www. Puisque les cookies sont définis sur le domaine parent (mydomain.ext), ils seront également envoyés aux sous-domaines (images.mydomain.ext).

Questions connexes