programing

tilde(~) 기호가 있는 URL에서 전체 URL 가져오기

subpage 2023. 9. 11. 21:50
반응형

tilde(~) 기호가 있는 URL에서 전체 URL 가져오기

tilde 기호('~')로 시작하는 일반적인 asp.net url을 "float:"로 시작하는 완전한 정확한 url로 구문 분석하려고 합니다.

"~/PageB.aspx" 문자열이 있습니다.

그리고 저는 그것을 "http://myServer.com/PageB.aspx "로 만들고 싶습니다.

URL을 파싱하고 서버와 애플리케이션의 다른 경로를 얻는 몇 가지 방법이 있다는 것을 알고 있습니다.여러 번 시도해 보았지만 원하는 결과를 얻지 못했습니다.

시험해보기

System.Web.VirtualPathUtility.ToAbsolute("yourRelativePath"); 

ASP에는 다양한 방법이 있습니다.서버 측 리소스에 대한 상대 경로를 해결하고 클라이언트 측에서 사용할 수 있도록 하는 데 사용할 수 있는 NET입니다.나는 네가지 방법을 알고 있습니다.

 1) Request.ApplicationPath
 2) System.Web.VirtualPathUtility
 3) Page.ResolveUrl
 4) Page.ResolveClientUrl

좋은 기사 : ASP.NET에서 URL을 해결하기 위한 다양한 방법

페이지 핸들러를 사용하는 경우 언제든지 사용할 수 있습니다.ResolveUrl상대 경로를 서버 특정 경로로 변환하는 방법.하지만 "http://www.yourserver.se " 부분도 원한다면, 당신은 다음과 같이 설명해야 할 것입니다.Request.Url.Scheme그리고.Request.Url.Authority하게.

string.Format("http://{0}{1}", Request.Url.Host, Page.ResolveUrl(relativeUrl));

이 방법이 제가 보기에는 가장 좋습니다.문자열 조작 없이 상대 URL 또는 절대 URL을 입력으로 허용할 수 있으며 현재 요청이 사용하는 방식, 권한, 포트 및 루트 경로와 정확히 동일한 방식을 사용합니다.

private Uri GetAbsoluteUri(string redirectUrl)
{
    var redirectUri = new Uri(redirectUrl, UriKind.RelativeOrAbsolute);

    if (!redirectUri.IsAbsoluteUri)
    {
        redirectUri = new Uri(new Uri(Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath), redirectUri);
    }

    return redirectUri;
}

언급URL : https://stackoverflow.com/questions/9092523/getting-full-url-from-url-with-tilde-sign

반응형