web-dev-qa-db-ja.com

クエリ文字列とアンカーハッシュタグを使用した適切なURLの形成

クエリ文字列とアンカータグ(ハッシュタグ)の両方がURLに表示される場合、それらが表示される適切な順序は何ですか?

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

または

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

これに関するドキュメントはありますか?

更新: URLはWordpress/PHPによって処理されています

87
Dan
?var=var#hash

#の後はすべてクライアント側です。

また、urlい?var=varを取り除くためにURLの書き換えを調べます

111
blitzmann

RFC 3986 に記載されているように、#の前に来る必要があります。

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

スーパーユーザーでの回答から取得( https://superuser.com/questions/498617/does-an-anchor-tag-come-before-the-query-string-or -after ):

50
billy

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'>.
1
Teacher Michael

#を使用する意図が page fragment then -yes ? then #を示すことである場合。

#?の前に来て、fragmentページを示さない場合(これは#が権限(ユーザー名とパスワード)の一部である場合に発生する可能性があります)エンコードされているか、問題が発生しています。 urlに異なる意味を与える可能性のある他の特殊文字(:@、...)にも同じことが当てはまります。

1