Строка запроса после доменного имени

Я пытаюсь добавить строку запроса в конце 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 (Никакие дополнительные символы).

Я пропускаю какую-либо вещь? Совет.

Спасибо, Krishna.

5
задан Gumbo 5 March 2010 в 18:18
поделиться

3 ответа

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

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

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

5
ответ дан 13 December 2019 в 22:06
поделиться

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

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

3
ответ дан 13 December 2019 в 22:06
поделиться

Хотя 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, использующий общий синтаксис для полномочий с пустым путем, должен быть нормализован до пути "/".

0
ответ дан 13 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: