[php] 쿼리 문자열 및 앵커 해시 태그로 올바른 URL 형성

쿼리 문자열과 앵커 태그 (해시 태그)가 URL에 모두 표시 될 때 표시되는 올바른 순서는 무엇입니까?

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

또는

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

이것에 대한 문서가 있습니까?

업데이트 : URL은 WordPress / PHP에서 처리됩니다.



답변

?var=var#hash

이후의 모든 #것은 클라이언트 측입니다.

또한 URL 재 작성을 조사하여 추악한 ?var=var


답변

? RFC 3986에 명시된대로 # 앞에 와야합니다 .

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

수퍼 유저 ( /superuser/498617/does-an-anchor-tag-come-before-the-query-string-or-after ) 의 답변에서 가져 왔습니다 .


답변

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> 

URL 링크가 아닌

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


답변

사용의 의도는 경우 #나타내는 것입니다 페이지를 fragment다음 예 – ?다음 #.

경우 #이전오고 ?그것을 나타낸다 페이지에없는 fragment(때 발생할 수 있습니다 #그것을 인코딩해야하는 권한 (사용자 이름 및 암호)의 일부입니다)하거나 문제가 있습니다. 동일은 다른 특수 문자 (적용 :, @URL로 다른 의미를 줄 수있는, …).


답변