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.