使用Query String和Anchor Hashtag形成正确的URL

Dan*_*Dan 95 php url wordpress standards

如果查询字符串和锚标记(哈希标记)在URL中都可见,那么它们的正确顺序是什么?

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

要么

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

有没有这方面的文件?

更新: URL由Wordpress/PHP处理

bli*_*ann 122

?var=var#hash
Run Code Online (Sandbox Code Playgroud)

一切#都是客户端.

另外,查看url重写以摆脱丑陋 ?var=var

  • 查询字符串很难看但它有其目的并且更灵活 (22认同)
  • 使用查询字符串有什么问题?出于某种原因,它们是HTTP标准的一部分 (4认同)

bil*_*lly 52

?应该出现RFC 3986中提到的#之前:

relative-ref = relative-part [ "?" query ] [ "#" fragment ]
Run Code Online (Sandbox Code Playgroud)

取自超级用户的回答(https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or-after):

  • 这应该是公认的答案。它清楚地指出了文档,并且不含评论者的个人观点。 (4认同)

小智 6

请注意,当 URL 同时具有锚标记 (#) 和查询字符串 (?) 时,浏览器可能会忽略查询字符串并导航到锚标记而不重新加载页面。

可能需要使用

<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>
Run Code Online (Sandbox Code Playgroud)

而不仅仅是一个 URL 链接

<a href='webpage.php?q=string#tag'>.
Run Code Online (Sandbox Code Playgroud)


Mat*_*ius 5

如果使用的目的#是表示一个页面fragmentthen - yes?和 then #

如果#出现在前面?并且不表示页面fragment(当#是权限的一部分(用户名和密码)时可能会发生这种情况),则必须对其进行编码,否则您就会遇到麻烦。这同样适用于任何其他可能为 URL 赋予不同含义的特殊字符( :、 、...)。@