public static string MakeRelativePath(string url)
{
url = HttpUtility.HtmlDecode(url);
if (url[0] != '~')
{
if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
url = new Uri(url).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
if (url.StartsWith(HttpContext.Current.Request.ApplicationPath, StringComparison.OrdinalIgnoreCase))
url = url.Substring(HttpContext.Current.Request.ApplicationPath.Length);
url = (url[0] == '/' ? "~" : "~/") + url;
}
return url;
}