2010-09-10 4 views
0

Я хочу использовать следующий формат моего URL:Включать URL внутри URL

http://localhost/{url}/{options}/{hash} 

Но так как URL будет очень странно, с URL внутри URL, как бы я закодировать это?

Я думал о кодировании в шестнадцатеричном виде, поскольку кодировка url в .net дала мне какой-то странный результат, который не работал внутри URL-адреса. Но я действительно не знаю, что было бы лучше всего здесь.

Я хочу сохранить структуру URL-адреса, не считая каких-либо запросов.

ответ

2

Вы можете использовать метод System.Web.HttpUtility.UrlEncode для кодирования частей URL-адреса (даже другого URL-адреса).

Если это часть пути, а не строка запроса, UrlPathEncode должен выполнить эту работу.

+0

, который работает только при использовании с помощью строки запроса. а не с URL-частью. – Andreas

+0

вы правы, исправлены;) –

+0

Попробуй это сразу, спасибо. Отметьте свой ответ, если он сработает :) – Andreas

0

Если вы не хотите часть запроса, то почему вы хотите кодировать часть url?

Следующая URL полностью действует:

http://localhost/www.stackoverflow.com/1234/abc 

Как указано в этом RFC, символы, "-" и "" разрешены в URI.

+0

Если URL-адрес (внутри URL-адреса) содержит запрос, это не сработает. – Andreas

+0

Вы упомянули, что вы не хотите включать запрос. Если вы хотите включить данные запроса в путь, тогда вы можете разработать схему кодирования самостоятельно, как замену «&» на «-.-» или «=» на «..-». Хотя это не идеальное решение, оно может работать. Повторное чтение RFC, упомянутое в моем ответе, даст вам представление о том, как разработать схему для вашего ситутации. – Zafer