Dim x AS New URI("http://www.example.com/test//test.asp")
Dim rel AS New URI("http://www.example.com/xxx/xxx.asp")
Console.Writeline(x.MakeRelativeUri(rel).Tostring())
제대로 작동하도록 :정규화 URI는 출력이가 여기에서 MakeRelativeUri
거의 모든 웹 서버는 다음과 같은 요청이 처리 할 올바른 보이는../../xxx/xxx.asp
:
http://www.example.com/test//test.asp
http://www.example.com/test/test.asp
을
이 동작을 수정하는 가장 좋은 방법은이 작업을 수행 할 API가 있거나 수동으로 새 URI를 만들고 경로에서 // 모두 제거해야합니다.
그 코드는 여러 시나리오에서 작동하지 않으므로 매우 원시적 인 해킹입니다. 가장 명확하게 http://example.com/test///xxx입니다. 두 번째로 인코딩이 잘되어 있지 않지만 유효한 URI : http://example.com/?bla=//Whatup –
Dr.Evil : 유효한 URL은 웹 서버가 해석하는 방식과 URL을 구문 분석 할 때 얼마나 강력한 지 결정했습니다. 프레임 워크가 원하는대로 모든 정리 작업을 수행하지 않으므로 슬래시를 적절하게 검사하고 지우는 "makerelativeurl"함수를 직접 작성하십시오. RFC를 따르거나 URL이 명확하지 않은 경우를 처리해야합니까? .) –