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
'programing' 카테고리의 다른 글
SEC7118: XMLHttpRequest CORS - IE 콘솔 메시지 (0) | 2023.09.11 |
---|---|
fetch, ajax 및 xhr의 차이 (0) | 2023.09.11 |
브라우저가 텍스트를 렌더링하기 위해 실제로 사용하는 글꼴을 확인하려면 어떻게 해야 합니까? (0) | 2023.09.11 |
안드로이드 뷰부풀리기예외:이진 XML 파일라인 #12: 클래스 부풀리기 오류 (0) | 2023.09.11 |
Python의 salt and hash 암호 (0) | 2023.09.11 |