Pembentukan URL yang tepat dengan Query String dan Anchor Hashtag

114

Ketika string kueri dan tag jangkar (tag hash) terlihat di URL, bagaimana urutan yang tepat agar keduanya muncul?

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

atau

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

Apakah ada dokumentasi tentang ini?

update: URL ditangani oleh Wordpress / PHP

Dan
sumber

Jawaban:

148
?var=var#hash

semuanya setelahnya #adalah sisi klien.

Juga, lihat penulisan ulang url untuk menyingkirkan jelek ?var=var

blitzmann.dll
sumber
26
string kueri jelek tetapi memiliki tujuannya dan lebih fleksibel
Morio
7
Apa yang salah dengan menggunakan string kueri? mereka adalah bagian dari standar HTTP karena suatu alasan
Julio Bastida
Ya, tetapi untuk SPA (Aplikasi Halaman Tunggal), parameter apa untuk parameter halaman-ke-halaman sisi klien?
Pete Alvin
64

? harus datang sebelum # seperti yang tercantum di RFC 3986 :

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

Diambil dari jawaban di superuser ( /superuser/498617/does-an-anchor-tag-come-before-the-query-string-or-after ):

billy
sumber
2
Ini harus menjadi jawaban yang diterima. Ini dengan jelas menunjukkan dokumentasi dan tidak sesuai dengan pendapat pribadi komentator.
Amir Keibi
3

Perhatikan bahwa ketika URL memiliki tag anchor (#) dan string kueri (?), Browser mungkin mengabaikan string kueri dan menavigasi ke tag anchor tanpa memuat ulang halaman.

Mungkin perlu untuk mengirimkan halaman menggunakan

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

bukan hanya tautan URL

    <a href='webpage.php?q=string#tag'>.
Guru Michael
sumber
1

Jika maksud penggunaan #adalah untuk menunjukkan halaman fragmentmaka - ya ?maka #.

Jika #datang sebelumnya ?dan bukan untuk menunjukkan halaman fragment(ini dapat terjadi ketika #merupakan bagian dari otoritas (nama pengguna dan kata sandi)) itu harus dikodekan atau Anda dalam masalah. Sama berlaku untuk karakter khusus lainnya ( :, @, ...) yang bisa memberikan arti yang berbeda untuk url.

Matas Vaitkevicius
sumber