สร้าง URL ที่เหมาะสมด้วย Query String และ Anchor Hashtag


114

เมื่อทั้งสตริงข้อความค้นหาและแท็กจุดยึด (แฮชแท็ก) ปรากฏใน URL ลำดับที่เหมาะสมที่จะปรากฏคืออะไร

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

หรือ

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

มีเอกสารเกี่ยวกับเรื่องนี้หรือไม่?

ปรับปรุง: URL จะถูกจัดการโดย Wordpress / PHP

คำตอบ:


149
?var=var#hash

ทุกอย่างหลังจากนั้น#คือฝั่งไคลเอ็นต์

นอกจากนี้ให้ดูการเขียน URL ใหม่เพื่อกำจัดสิ่งที่น่าเกลียด ?var=var


26
สตริงข้อความค้นหาน่าเกลียด แต่มีจุดประสงค์และมีความยืดหยุ่นมากกว่า
Morio

7
เกิดอะไรขึ้นกับการใช้สตริงการค้นหา เป็นส่วนหนึ่งของมาตรฐาน HTTP ด้วยเหตุผลหนึ่ง
Julio Bastida

ใช่ แต่สำหรับ SPAs (Single Page Applications) พารามิเตอร์ใดสำหรับพารามิเตอร์แบบเพจต่อเพจฝั่งไคลเอ็นต์
Pete Alvin

64

เหรอ? ควรมาก่อน #ตามที่ระบุไว้ในRFC 3986 :

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

นำมาจากคำตอบที่ superuser ( /superuser/498617/does-an-anchor-tag-come-before-the-query-string-or-after ):


2
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ เอกสารดังกล่าวชี้ให้เห็นอย่างชัดเจนและถือเป็นโมฆะความเห็นส่วนตัวของผู้แสดงความคิดเห็น
Amir Keibi

3

โปรดทราบว่าเมื่อ 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

ถ้าความตั้งใจที่จะใช้#คือการแสดงหน้าfragmentแล้ว - ใช่แล้ว?#

หาก#มาก่อน?และจะไม่แสดงหน้าfragment(อาจเกิดขึ้นได้เมื่อ#เป็นส่วนหนึ่งของผู้มีอำนาจ (ชื่อผู้ใช้และรหัสผ่าน)) จะต้องมีการเข้ารหัสหรือคุณมีปัญหา เช่นเดียวกับตัวอักษรพิเศษอื่น ๆ ( :, @, ... ) ที่สามารถให้ความหมายที่แตกต่างกันไปยัง URL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.