Formazione corretta dell'URL con stringa di query e hashtag di ancoraggio


114

Quando sia una stringa di query che un tag di ancoraggio (tag hash) sono visibili in un URL, qual è l'ordine corretto in cui compaiono?

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

o

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

C'è qualche documentazione su questo?

aggiornamento: gli URL vengono gestiti da Wordpress / PHP

Risposte:


148
?var=var#hash

tutto quello che segue #è lato client.

Inoltre, esamina la riscrittura dell'URL per sbarazzarti del brutto ?var=var


26
la stringa di query è brutta ma ha il suo scopo ed è più flessibile
Morio

7
Cosa c'è di sbagliato nell'usare le stringhe di query? fanno parte dello standard HTTP per un motivo
Julio Bastida

Sì, ma per SPA (applicazioni a pagina singola), quali parametri per i parametri da pagina a pagina lato client?
Pete Alvin,


3

Si noti che quando l'URL ha sia tag di ancoraggio (#) che stringhe di query (?), Il browser può ignorare la stringa di query e passare al tag di ancoraggio senza ricaricare la pagina.

Potrebbe essere necessario inviare la pagina utilizzando un file

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

piuttosto che solo un collegamento URL

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

1

Se l'intenzione di utilizzare #è quello di indicare la pagina fragmentpoi - sì ?, allora #.

Se #viene prima ?e non è per denotare la pagina fragment(questo può accadere quando #fa parte dell'autorità (nome utente e password)) deve essere codificata o sei nei guai. Lo stesso vale per tutti gli altri caratteri speciali ( :, @, ...) che potrebbero dare significato diverso URL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.