web-dev-qa-db-fra.com

Création correcte d'URL avec Query String et Anchor Hashtag

Lorsque la chaîne de requête et la balise d'ancrage (balise de hachage) sont visibles dans une URL, quel est le bon ordre pour qu'elles apparaissent?

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

ou

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

Y a-t-il une documentation à ce sujet?

pdate: Les URL sont gérées par Wordpress/PHP

87
Dan
?var=var#hash

tout après # est le côté client.

En outre, examinez la réécriture d’URL pour vous débarrasser de la laideur ?var=var

111
blitzmann

? devrait précéder le # comme indiqué dans RFC 3986 :

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

extrait d'une réponse auprès du superutilisateur ( https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or-after ):

50
billy

Notez que lorsque l'URL comporte à la fois des balises d'ancrage (#) et des chaînes de requête (?), Le navigateur peut ignorer la chaîne de requête et accéder à la balise d'ancrage sans recharger la page.

Il peut être nécessaire de soumettre la page en utilisant un

    <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> 

plutôt qu'un simple lien URL

    <a href='webpage.php?q=string#tag'>.
1
Teacher Michael

Si l'intention d'utiliser # est à noter page fragment then - oui ? puis #.

Si # arrive avant ? et il ne faut pas dénoter la page fragment (cela peut arriver quand # fait partie de l’autorité (nom d’utilisateur et mot de passe)), il doit être codé ou vous avez des problèmes. Il en est de même pour les autres caractères spéciaux (:, @, ...) qui pourrait donner un sens différent à url.

1
Matas Vaitkevicius