Formación adecuada de URL con Query String y Anchor Hashtag

114

Cuando tanto una cadena de consulta como una etiqueta de anclaje (etiqueta hash) son visibles en una URL, ¿cuál es el orden correcto para que aparezcan?

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

o

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

¿Hay alguna documentación de esto?

actualización: las URL están siendo manejadas por Wordpress / PHP

Dan
fuente

Respuestas:

148
?var=var#hash

todo lo que #sigue es del lado del cliente.

Además, busque en la reescritura de URL para deshacerse de los feos ?var=var

blitzmann
fuente
26
La cadena de consulta es fea pero tiene su propósito y es más flexible
Morio
7
¿Qué tiene de malo el uso de cadenas de consulta? son parte del estándar HTTP por una razón
Julio Bastida
Sí, pero para las SPA (aplicaciones de página única), ¿qué parámetros para los parámetros página a página del lado del cliente?
Pete Alvin
3

Tenga en cuenta que cuando la URL tiene tanto etiquetas de anclaje (#) como cadenas de consulta (?), El navegador puede ignorar la cadena de consulta y navegar hasta la etiqueta de anclaje sin volver a cargar la página.

Puede que sea necesario enviar la página con 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> 

en lugar de solo un enlace URL

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

Si la intención de usar #es para denotar la página, fragmententonces sí, ?entonces #.

Si #viene antes ?y no es para indicar la página fragment(esto puede suceder cuando #es parte de la autoridad (nombre de usuario y contraseña)) tiene que estar codificada o tiene problemas. Lo mismo se aplica a cualquier otro carácter especial ( :, @, ...) que podrían dar significado diferente a la URL.

Matas Vaitkevicius
fuente