C# 从URL中删除其他斜杠
在C# 从URL中删除其他斜杠,c#,asp.net,url,slash,C#,Asp.net,Url,Slash,在ASP.Net中,可以通过如下URL从几乎相同的页面获取相同的内容 localhost:9000/Index.aspx和localhost:9000//Index.aspx甚至localhost:9000///Index.aspx 但这对我来说并不好 在用户转到某个页面之前,我如何删除这些额外的斜杠?在什么地方 删除它们,例如: url = url.Replace("///", "/").Replace("//", "/"); 这个解决方案不是很漂亮,但非常简单 do { url
ASP.Net
中,可以通过如下URL从几乎相同的页面获取相同的内容
localhost:9000/Index.aspx
和localhost:9000//Index.aspx
甚至localhost:9000///Index.aspx
但这对我来说并不好
在用户转到某个页面之前,我如何删除这些额外的斜杠?在什么地方 删除它们,例如:
url = url.Replace("///", "/").Replace("//", "/");
这个解决方案不是很漂亮,但非常简单
do
{
url = url.Replace("//", "/");
}
while(url.Contains("//"));
这将适用于url中的许多斜杠,但运行时不是很好。使用以下方法:
url = Regex.Replace(url , @"/+", @"/");
它将支持n次
请参见
您需要指定一个基本Uri和一个相对路径来获得规范化的行为
Regex.Replace(“http://localhost:3000///////asdasd/as///asdasda///asdasdasd//“,@“/+”,@“/”。替换(“:/”,“:/”)
在服务器端或客户端删除?@RoyiNamir,我认为从服务器删除会更好。如果您的url包含http:\\部分,您将无法获得所有当前答案。不要只是替换,小心地构建url。如果url字符串包含类似“”的内容,这将不起作用。它将从“https://”中删除“//”,url将不起作用。您在该屏幕截图中使用了什么工具?
Uri baseUri = new Uri("http://www.contoso.com");
Uri myUri = new Uri(baseUri, "catalog/shownew.htm");
Console.WriteLine(myUri.ToString());