Объедините полный URL и виртуальный URL, как это делает браузер - PullRequest
3 голосов
/ 10 мая 2011

У меня есть полный URL-адрес, например: A: <a href="http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext" rel="nofollow">http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext</a>.

У меня есть относительный URL, например: B: ../../fff.ext

Я ищу самый простой способ в .NET C # объединить эти два URL и получить: C: <a href="http://www.domain.com/aaa/bbb/fff.ext" rel="nofollow">http://www.domain.com/aaa/bbb/fff.ext</a>

Это похоже на то, что делают браузеры: вы просматриваете URL-адрес A, затем HTML-код страницы имеет гиперссылку как B, результирующий URL-адрес - C.

1 Ответ

5 голосов
/ 10 мая 2011

Вам, вероятно, повезет больше, если вы найдете "PathCanonicalize".

Также, с моими выводами, один из перегруженных Uri конструкторов может справиться с этим:

Uri combined = new Uri(
  new Uri("http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext", UriKind.Absolute),
  "../../fff.ext"
);

Доказательство в пудинге

...