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

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


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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.