private string GetUrlPath(HttpListenerContext context, ref string rootFs) { var urlPath = context.RequestPathCaseSensitive().Replace('/', Path.DirectorySeparatorChar); if (m_VirtualPaths.Any(x => context.RequestPathCaseSensitive().StartsWith(x.Key))) { var additionalPath = m_VirtualPaths.FirstOrDefault(x => context.RequestPathCaseSensitive().StartsWith(x.Key)); rootFs = additionalPath.Value; urlPath = urlPath.Replace(additionalPath.Key.Replace('/', Path.DirectorySeparatorChar), ""); if (string.IsNullOrWhiteSpace(urlPath)) { urlPath = Path.DirectorySeparatorChar.ToString(); } } // adjust the path to see if we've got a default document if (urlPath.Last() == Path.DirectorySeparatorChar) urlPath = urlPath + DefaultDocument; urlPath = urlPath.TrimStart(Path.DirectorySeparatorChar); return urlPath; }