using System; using System.Web; using System.Text.RegularExpressions; namespace Elisy.Theater.Web.HttpModules { public class WwwAddingModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(context_BeginRequest); } private void context_BeginRequest(object sender, EventArgs e) { HttpContext context = (sender as HttpApplication).Context; if (context.Request.HttpMethod != "GET" || context.Request.IsLocal) return; if (context.Request.PhysicalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase)) { string originalUrl = context.Request.Url.ToString(); string url = originalUrl; if (!url.Contains("://www.")) { url = url.Replace("://", "://www."); if (url.EndsWith("Default.aspx", StringComparison.OrdinalIgnoreCase)) url = url.Replace("Default.aspx", string.Empty); } if (url != originalUrl) { context.Response.Clear(); context.Response.StatusCode = 301; context.Response.AppendHeader("location", url); context.Response.End(); } } } } }