Formação de URL adequada com Query String e Anchor Hashtag


114

Quando uma string de consulta e uma tag âncora (tag hash) são visíveis em um URL, qual é a ordem correta para que apareçam?

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

ou

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

Existe alguma documentação sobre isso?

atualização: Os URLs estão sendo tratados por Wordpress / PHP

Respostas:


148
?var=var#hash

tudo depois #é do lado do cliente.

Além disso, procure reescrever url para se livrar do feio ?var=var


26
string de consulta é feia, mas tem sua finalidade e é mais flexível
Morio

7
O que há de errado em usar strings de consulta? eles fazem parte do padrão HTTP por uma razão
Julio Bastida

Sim, mas para SPAs (aplicativos de página única), quais são os parâmetros dos parâmetros página a página do lado do cliente?
Pete Alvin


3

Observe que quando o URL tem marcas âncora (#) e strings de consulta (?), O navegador pode ignorar a string de consulta e navegar até a marca âncora sem recarregar a página.

Pode ser necessário enviar a página usando um

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

em vez de apenas um link de URL

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

1

Se a intenção de usar #é denotar página, fragmententão - sim, ?então #.

Se #está vindo antes ?e não é para denotar a página fragment(isso pode acontecer quando #faz parte da autoridade (nome de usuário e senha)) tem que ser codificado ou você está com problemas. Mesmo se aplica a quaisquer outros caracteres especiais ( :, @...) que poderiam dar significado diferente para url.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.