获取url的主要部分,包括虚拟目录

时间:2011-11-03 18:16:23

标签: c# asp.net .net url request

我正在使用.net 4.0 c#。

我希望能够从当前的http请求中获取url,包括任何虚拟目录。例如(请求和寻求的价值):

http://www.website.com/shop/test.aspx - > http://www.website.com/shop/

http://www.website.com/test.aspx - > http://www.website.com/

http://website.com/test.aspx - > http://website.com/

如何实现这一目标?

4 个答案:

答案 0 :(得分:30)

这就是我使用的

HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath;

答案 1 :(得分:4)

Request.Url应该包含您需要的一切。在这一点上,这是检查字符串,以及你喜欢从中获取的问题。我之前使用过AbsoluteUri,它有效。

这个例子不是万无一失的,但你应该能够从中找出你需要的东西:

string Uri = Request.Url.AbsoluteUri;
string Output = Uri.Substring(0, Uri.LastIndexOf('/') + 1 );

答案 2 :(得分:1)

此解决方案可以正常运行并且更短:

string url = (new Uri(Request.Url, ".")).OriginalString;

答案 3 :(得分:0)

这应该有效

Request.Url.OriginalString.Substring(0, Request.Url.OriginalString.LastIndexOf(Request.FilePath.Substring(Request.FilePath.LastIndexOf("/")))) + "/"