我的所有行为都有一个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的正确方法是什么?