WordPress จัดการกับ permalinks อย่างไร


11

WordPress อัตโนมัติแก้ไขลิงก์ถาวร (URL) แม้ว่าจะป้อนไม่ถูกต้อง สำหรับเช่น WordPress จะที่ดินคุณในexample.com/some-postแม้ว่าคุณจะป้อนexample.com/idontexist/some-postหรือแม้กระทั่งexample.com/some

อาจเป็นไปได้ว่า WordPress ใช้ RegEx เช่นหรืออัลกอริทึมการจับคู่ที่เปรียบเทียบจากขวาไปซ้ายและหากพบการจับคู่มันจะนำคุณไปยังหน้าแม้ว่าจะมี/.*/ทางซ้าย แค่เดา! WordPress ทำเช่นนี้ได้อย่างไร?

แก้ไข: ฉันยังพบว่าการตรวจสอบ htaccess ไฟล์สำหรับแฟ้มเสมือนไดเรกทอรี / ใช้!fและ!dและการเปลี่ยนเส้นทางการร้องขอไปยัง index.php ในโฟลเดอร์บล็อก

คำตอบ:


6

ฟังก์ชัน redirect_canonical ใน /wp-includes/canonical.php ถูกเรียกบน URL ที่กำหนดและจะพยายามคาดเดา URL ที่ผู้ใช้ต้องการและเปลี่ยนเส้นทางไปที่นั่นเมื่อ URL นั้นไม่มีอยู่ มีโค้ดจำนวนมากในการทำเช่นนี้สำหรับข้อผิดพลาดทั่วไปทุกประเภท


1
โหวตขึ้นสำหรับ "จำนวนมหาศาลทั้งหมด": D
Travis Northcutt


1

มันค่อนข้างง่าย WordPress ใช้ประโยชน์จากตัวดำเนินการ LIKE ในแบบสอบถาม SQL เพื่อคาดเดา URL ทั้งหมดจาก URL บางส่วนเมื่อเป็นหน้า 404

ตรวจสอบรหัสนี้นำมาจาก /wp-includes/canonical.php redirect_guess_404_permalink()ฟังก์ชั่น

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.