Правильное формирование URL с помощью Query String и Anchor Hashtag

51

Когда в URL-адресе видны как строка запроса, так и якорный тег (хэш-тег), каков порядок их отображения?

http://www.whatever.com?var=val#anchor

или

http://www.whatever.com#anchor?var=val

Есть ли какие-либо документы по этому поводу?

update: URL-адреса обрабатываются Wordpress/PHP

Теги:
url
standards

3 ответа

76
Лучший ответ
?var=var#hash

все после # является клиентской стороной.

Кроме того, посмотрите на переписывание URL, чтобы избавиться от уродливого ?var=var

  • 19
    Строка запроса уродлива, но она имеет свое назначение и является более гибкой
  • 3
    Что не так с использованием строк запроса? они являются частью стандарта HTTP по причине
25

? должен появиться перед #, как указано в RFC 3986:

relative-ref = relative-part [ "?" query ] [ "#" fragment ]

Взято из ответа на суперпользователя (https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or-after):

1

Если намерение использовать # означает page fragment, тогда - yes ?, затем #.

Если # подходит до ?, и это не означает, что страница fragment (это может произойти, когда # является частью полномочий (имя пользователя и пароль)), оно должно быть закодировано или вы находитесь в беда. То же самое относится к любым другим специальным символам (:, @,...), которые могли бы придать другой смысл URL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню