จะป้องกันการเปลี่ยนเส้นทางอัตโนมัติได้อย่างไร


16

Wordpress มีคุณสมบัติที่จะเปลี่ยนเส้นทาง URL ของคุณโดยอัตโนมัติหากพบว่ามีการเขียนผิด นี่คือตัวอย่าง: ฉันมีหน้าเรียกว่าmy-page

ถ้าฉันไปที่:

www.mysite.com/something/my-page/

มันจะเปลี่ยนเส้นทางให้ฉันทันที

www.mysite.com/my-page/

ไม่มีสิ่งใดอยู่ที่ URL แรก

ฉันจะปิดคุณลักษณะนี้ได้อย่างไรและรับ 404 หากพิมพ์ URL ที่ไม่ถูกต้องแทน


หากคุณดูสิ่งที่เกิดขึ้น (ผ่าน HttpFox หรือ WireShark หรือแพ็คเก็ตดมกลิ่นที่คล้ายกัน) หน้าเหล่านั้นจะเปลี่ยนเส้นทางด้วยสถานะ 301 - ย้ายอย่างถาวร - ซึ่งเป็นพฤติกรรมที่เหมาะสม ช่วยให้เครื่องมือค้นหาทำให้ฐานข้อมูลทันสมัยอยู่เสมอและการเปลี่ยนเส้นทางช่วยให้ผู้ใช้สามารถค้นหาหน้าต่างๆได้ นี่อาจส่งผลต่อวิธีการที่ WordPress จัดการกับสิ่งต่าง ๆ เมื่อคุณย้ายหน้าจริง ๆ หรือเปลี่ยน Permalink ดังนั้นควรระมัดระวัง อย่างไรก็ตามทางเลือกของคุณ แต่ฉันไม่แน่ใจว่ามันเป็นความคิดที่ดี
s_ha_dum

ฉันรู้ว่ามันเป็นสิ่งที่ดีฉันเข้าใจเรื่องนั้น อย่างไรก็ตามฉันมีกรณีการใช้งานเฉพาะที่ฉันไม่ต้องการพฤติกรรมนั้น ฉันกำลังพัฒนาปลั๊กอินที่จัดการการเปลี่ยนเส้นทาง URL ดังนั้นฉันจึงต้องการแทนที่การทำงานนั้น
Mazatec

นี่คือคำตอบที่ถูกต้องมากขึ้น: link
Binod - GoFundMonica

คำตอบ:


23

สิ่งนี้ใช้ได้กับฉัน:

remove_action('template_redirect', 'redirect_canonical');

คุณช่วยแนะนำฉันเกี่ยวกับสิ่งที่จะทำอย่างไร การเปลี่ยนเส้นทางแบบบัญญัติคืออะไร ฉันใหม่กับเวิร์ดเพรส
Yatin Mistry

คุณเพิ่งช่วยฉันปวดหัวมาก! ขอขอบคุณ ! :-D
Jenski

1
ไม่มีที่ไหนที่เราสามารถเห็นการเปลี่ยนเส้นทางเหล่านี้เพื่อให้เราสามารถลบออกได้ทีละคน?
เชนโจนส์

มันเยี่ยมมาก คุณรู้ไหมว่าทำไมwp-adminยังคงมีการเปลี่ยนเส้นทางหลังจากใช้งาน
เกซิม

คุณสามารถดูคำอธิบายโดยละเอียดของปัญหานี้ได้ที่ dev4press.com/blog/wordpress/2015/…
ronnefeldt

5

ตามที่ Ash แนะนำคุณสามารถปิดคุณลักษณะได้โดยใช้รหัสต่อไปนี้:

remove_action('template_redirect', 'redirect_canonical');

ในการดูฟังก์ชั่น redirect_canonical ใน canonical.php มันจะปรากฏขึ้นคุณยังสามารถปรับเปลี่ยนพฤติกรรมด้วยตัวกรองของคุณเอง

ในตอนท้ายของฟังก์ชั่น redirect_canonical () มีการเรียกเพื่อกรองคำตอบสุดท้าย:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

ดังนั้นคุณสามารถเขียนตัวกรองของคุณเองเพื่อปรับเปลี่ยนการเปลี่ยนเส้นทางครั้งสุดท้ายหรือคืนค่า null เพื่อหยุดการเปลี่ยนทิศทางตามอินพุตดังนั้นจึงปิดคุณลักษณะสำหรับ URL เฉพาะหรือชุดย่อยของ URL

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