private static bool RedirectBecauseClientForgotTrailingSlashOnRoot(HttpApplication httpApplication, HttpContext httpContext, Uri originalUri) { bool result = false; HttpRequest request = httpContext.Request; if (request.HttpMethod == "GET") { string absolutePath = originalUri.AbsolutePath; string rootWithSlash = RequestDispatcher.GetRootWithSlash(); string value = rootWithSlash.TrimEnd(new char[] { '/' }); if (absolutePath.Equals(value, StringComparison.OrdinalIgnoreCase)) { if (string.IsNullOrEmpty(originalUri.Query) && OfflineClientRequestUtilities.IsRequestForAppCachedVersion(httpContext)) { RequestDispatcher.SendJavascriptRedirectTo(httpApplication, httpContext.Response, rootWithSlash); result = true; } else { RequestDispatcher.Send301RedirectTo(httpContext.Response, rootWithSlash + originalUri.Query); result = true; } } } return(result); }