Jawaban:
?var=var#hash
semuanya setelahnya #
adalah sisi klien.
Juga, lihat penulisan ulang url untuk menyingkirkan jelek ?var=var
? 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 ):
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'>.
Jika maksud penggunaan #
adalah untuk menunjukkan halaman fragment
maka - 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.