Правильное формирование URL-адреса с помощью строки запроса и якорного хэштега
Когда строка запроса и тег привязки (хэш-тег) видны в URL-адресе, каков правильный порядок их отображения?
http://www.whatever.com?var=val#anchor
Или
http://www.whatever.com#anchor?var=val
Существует ли какая-либо документация по этому вопросу?
Update: URL-адреса обрабатываются Wordpress / PHP
4 ответа:
?var=var#hash
Все, что после
#
, является клиентской стороной.Кроме того, посмотрите на переписывание url, чтобы избавиться от уродливого
?var=var
? должно стоять перед # , Как отмечено в RFC 3986:
relative-ref = relative-part [ "?" query ] [ "#" fragment ]
взято из ответа на суперпользователя (https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or-after):
Если намерение использования
#
состоит в том, чтобы обозначить страницуfragment
, то - ДА?
, ТО#
.Если
#
идет перед?
и он не должен обозначать страницуfragment
(это может произойти, когда#
является частью авторитета (имя пользователя и пароль)), он должен быть закодирован, или вы в беде. То же самое относится и к любым другим специальным символам (:
,@
,...), которые могут дать различное значение к URL-адресу.
Обратите внимание, что когда URL-адрес имеет как якорные теги ( # ), так и строки запроса (?), браузер может игнорировать строку запроса и перейти к тегу привязки без перезагрузки страницы.
Возможно, потребуется отправить страницу с помощью
<form action='webpage.php?q=string#tag' method='GET or POST'> <input type='text' id='q' name='q' value='string'> <input type='submit' value='submit'> </form>
А не просто ссылка на URL
<a href='webpage.php?q=string#tag'>.