Proper URL forming with Query String and Anchor Hashtag

爱⌒轻易说出口 提交于 2019-11-28 15:42:58

问题


When both a query string and anchor tag (hash tag) are visible in a URL, what is the proper order for them to appear?

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

or

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

Is there any documentation on this?

update: The URLs are being handled by Wordpress / PHP


回答1:


?var=var#hash

everything after # is client side.

Also, look into url rewriting to get rid of ugly ?var=var




回答2:


? should come before the # as noted in RFC 3986:

relative-ref = relative-part [ "?" query ] [ "#" fragment ]

Taken from an answer over at superuser (https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or-after):




回答3:


If intention of using # is to denote page fragment then - yes ? then #.

If # is coming before ? and it is not to denote page fragment (this can happen when # is part of authority (username and password)) it has to be encoded or you are in trouble. Same applies to any other special characters (:,@,...) that could give different meaning to url.




回答4:


Note that when the URL has both anchor tags (#) and query strings (?), the browser may ignore the query string and navigate to the anchor tag without reloading the page.

It may be necessary to submit the page using a

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

rather than just a URL link

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


来源:https://stackoverflow.com/questions/12682952/proper-url-forming-with-query-string-and-anchor-hashtag

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!