私は.net4.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/
どうすればこれを達成できますか?
これは私が使用するものです
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath;
Request.Urlには、必要なものがすべて含まれている必要があります。その時点で、文字列をチェックし、そこから何を取得したいかが問題になります。以前にAbsoluteUriを使用したことがありますが、機能します。
この例は絶対確実ではありませんが、これから必要なものを理解できるはずです。
string Uri = Request.Url.AbsoluteUri;
string Output = Uri.Substring(0, Uri.LastIndexOf('/') + 1 );
このソリューションは機能する可能性があり、より短いです。
string url = (new Uri(Request.Url, ".")).OriginalString;
これはうまくいくはずです
Request.Url.OriginalString.Substring(0, Request.Url.OriginalString.LastIndexOf(Request.FilePath.Substring(Request.FilePath.LastIndexOf("/")))) + "/"