在ASP.Net
中,可以通过URL等几乎相同的页面获取相同的内容
localhost:9000/Index.aspx
和localhost:9000//Index.aspx
甚至是localhost:9000///Index.aspx
但这对我来说并不好看。
如何在用户转到某个页面之前删除这些额外的斜杠?
答案 0 :(得分:5)
使用此:
url = Regex.Replace(url , @"/+", @"/");
它将支持n次
答案 1 :(得分:1)
这个解决方案不是那么漂亮但很容易
do
{
url = url.Replace("//", "/");
}
while(url.Contains("//"));
这将适用于您的网址中的许多斜杠,但运行时不是很好。
答案 2 :(得分:1)
见
https://stackoverflow.com/a/19689870
https://msdn.microsoft.com/en-us/library/9hst1w91.aspx#Examples
您需要指定基本Uri和相对路径来获取标准化行为。
Uri baseUri = new Uri("http://www.contoso.com");
Uri myUri = new Uri(baseUri, "catalog/shownew.htm");
Console.WriteLine(myUri.ToString());
答案 3 :(得分:0)
删除它们,例如:
url = url.Replace("///", "/").Replace("//", "/");
答案 4 :(得分:0)
Regex.Replace("http://localhost:3000///////asdasd/as///asdasda///asdasdasd//", @"/+", @"/").Replace(":/", "://")