如何使用 C# 在 Url重写中获取浏览器的完整 URL

本文关键字:浏览器 URL 获取 何使用 Url 重写 | 更新日期: 2023-09-27 18:31:49

我使用了URL重写。我有一个问题是我有这样的网址

http://localhost/learnmore.aspx

这是 URL 覆盖,所以我想要这个完整的 URL,所以我像这样编码。

string url=Request.RawUrl;

在这段代码之后,我在 url 变量中得到了/learnmore.aspx,但我想要完整的 URL http://localhost/learnmore.aspx

我该怎么做?

如何使用 C# 在 Url重写中获取浏览器的完整 URL

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost/learnmore.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /localhost/learnmore.aspx
string host = HttpContext.Current.Request.Url.Host;
// localhost
编辑:删除查询字符串

项:(从没有查询字符串的获取网址中找到)

var uri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri);
string path = uri.GetLeftPart(UriPartial.Path);

Uri url = new Uri("http://www.somesite.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme, 
    Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);

string url = "http://www.somesite.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));

你可以这样获取主机和方案:

Request.Url.GetLeftPart(UriPartial.Authority)

有了这个,您将获得:

http://localhost/

然后你可以附加原始网址

您可以尝试获取基本网址:

string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + 
    Request.ApplicationPath.TrimEnd('/') + "/";

Request.Url.AbsoluteUri就可以了。