代码之家  ›  专栏  ›  技术社区  ›  CVertex

IIS7部署的MVC不会重定向,尽管WWWfilter

  •  0
  • CVertex  · 技术社区  · 17 年前

    我的所有行为都有一个WWW过滤器

    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
    }
    

    对于我的站点, http://www.tweetMP.org.au

    网页或其他一些页面不会过滤掉www

    如果你使用菜单访问网站,随着过滤器的启动,www最终将消失。

    更新:这似乎与我正在执行的每个操作的OutputCache有关。在中等信任环境中过滤WWW的正确方法是什么?

    1 回复  |  直到 17 年前
        1
  •  1
  •   Tracker1    17 年前

    我会考虑使用内置的 IIS7 URL Rewrite Module 的重定向支持。此外,它还可以缓存在客户端浏览器中。。。如果执行强制刷新(Shift+F5),重定向是否有效?

    除此之外,如果您想在子域内对图像、脚本和css进行性能优化,您可能希望保留www.Since cookies,因为cookies设置为父域(mydomain.ext),也将发送到子域(images.mydomain.ext)。

    推荐文章