截断查询字符串并返回干净的URL C#ASP.net

Chr*_*ris 52 c# asp.net url truncate query-string

我想采用原始URL,截断查询字符串参数,并返回URL的清理版本.我希望它在整个应用程序中发生,因此通过global.asax执行将是理想的.此外,我认为301重定向也是有序的.

即.

在:www.website.com/default.aspx?utm_source=twitter&utm_medium=social-media

出:www.website.com/default.aspx

实现这一目标的最佳方法是什么?

Rob*_*ine 111

System.Uri是你的朋友.这有很多有用的实用程序,但你想要的是GetLeftPart:

 string url = "http://www.website.com/default.aspx?utm_source=twitter&utm_medium=social-media";
 Uri uri = new Uri(url);
 Console.WriteLine(uri.GetLeftPart(UriPartial.Path));
Run Code Online (Sandbox Code Playgroud)

这给出了输出:http://www.website.com/default.aspx

[Uri类确实要求指定协议http://]

GetLeftPart基本上说"将uri的左侧部分放到我指定的部分".这可以是Scheme(只是http://位),Authority(www.website.com部分),Path(/default.aspx)或Query(查询字符串).

假设您在aspx网页上,则可以使用Response.Redirect(newUrl)重定向调用者.

希望有所帮助


小智 6

这是一个简单的伎俩

Dim uri = New Uri(Request.Url.AbsoluteUri)

dim reqURL = uri.GetLeftPart(UriPartial.Path)
Run Code Online (Sandbox Code Playgroud)