internal string ApplyUrlMapping (string url)
{
if (urlMappings == null)
return url;
string relUrl = VirtualPathUtility.ToAppRelative (url);
UrlMapping um = null;
foreach (UrlMapping u in urlMappings) {
if (u == null)
continue;
if (String.Compare (relUrl, u.Url, StringComparison.Ordinal) == 0) {
um = u;
break;
}
}
if (um == null)
return url;
string rawUrl = VirtualPathUtility.ToAbsolute (um.MappedUrl.Trim ());
Uri newUrl = new Uri ("http://host.com" + rawUrl);
if (url_components != null) {
url_components.Path = newUrl.AbsolutePath;
url_components.Query = newUrl.Query.TrimStart (queryTrimChars);
query_string_nvc = new WebROCollection ();
HttpUtility.ParseQueryString (newUrl.Query, Encoding.Default, query_string_nvc);
query_string_nvc.Protect ();
} else
BuildUrlComponents (newUrl.AbsolutePath, newUrl.Query);
return url_components.Path;
}