Строка запроса после имени домена - PullRequest
5 голосов
/ 05 марта 2010

Я пытаюсь добавить строку запроса в конце URL для элемента управления гиперссылки следующим образом

HyperLink testLink = new HyperLink();
testLink.NavigateUrl = "http://www.example.com" + "?siteId=asd343s32kj343dce";

Но когда это отображается в браузере, оно отображается как http://www.example.com/?siteId=asd343s32kj343dce (/ символ после .com).

А если testLink.NavigateUrl = "http://www.example.com/abc.aspx" + "?siteId=asd343s32kj343dce";

Тогда ссылка отображается правильно как http://www.abcd.com/abc.aspx?siteId=asd343s32kj343dce (без дополнительных символов).

Я что-то упустил? Пожалуйста, совет.

Спасибо, Кришна.

Ответы [ 4 ]

5 голосов
/ 05 марта 2010

Браузер корректирует URL-адрес для вас, предполагая, что после имени домена должна быть косая черта. У вас могут возникнуть проблемы с браузерами, которые этого не делают, поэтому вы должны исправить URL-адрес на:

testLink.NavigateUrl = "http://www.abcd.com/" + "?siteId=asd343s32kj343dce";

Причина, по которой после имени домена должна быть косая черта, заключается в том, что само имя домена не может быть ресурсом. Доменное имя просто указывает веб-сайт, URL-адрес должен содержать что-то, указывающее ресурс на этом сайте, а косая черта указывает страницу по умолчанию в корневой папке сайта.

3 голосов
/ 05 марта 2010

это нормально, / говорит о том, что доменное имя закончилось, и вы сейчас находитесь внутри структуры сайта (в данном случае корневой контекст).

второе нормальнопотому что abc.aspx является веб-страницей и может принимать строку запроса.домен не может принять строку запроса.

1 голос
/ 28 января 2013
An HTTP URL takes the form:

http://<host>:<port>/<path>?<searchpart>

where <host> and <port> are as described in Section 3.1. If :<port>
is omitted, the port defaults to 80.  No user name or password is
allowed.  <path> is an HTTP selector, and <searchpart> is a query
string. The <path> is optional, as is the <searchpart> and its
preceding "?". If neither <path> nor <searchpart> is present, the "/"
may also be omitted.

http://tools.ietf.org/html/rfc1738#section-3.3

0 голосов
/ 05 марта 2010

Хотя http://example.com?query является действительным URI. нормализация HTTP URI указывает, что http://example.com?query и http://example.com/?query равны:

[…] поскольку схема «http» использует компонент полномочий, имеет порт по умолчанию «80» и определяет пустой путь, эквивалентный «/», следующие четыре URI эквивалентны:

  http://example.com
  http://example.com/
  http://example.com:/
  http://example.com:80/

Как правило, URI, который использует общий синтаксис для полномочий с пустым путем, должен быть нормализован к пути "/".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...