พื้นที่ ปลั๊กอินการเปลี่ยนเส้นทาง สร้างขึ้นสำหรับ WordPress เป็นวิธีการที่ยอดเยี่ยมในการจัดระเบียบและจัดการการเปลี่ยนเส้นทาง ฉันใช้เว็บไซต์นี้และได้จัดกลุ่มการเปลี่ยนเส้นทางสำหรับโพสต์ที่อัปเดตลิงก์พันธมิตรการดาวน์โหลด ฯลฯ
อย่างไรก็ตามฉันพบปัญหาเฉพาะที่ฉันมีการตั้งค่าพร็อกซีย้อนกลับสำหรับไคลเอนต์ที่ WordPress กำลังทำงานที่เส้นทาง ... แต่ไม่ใช่รากของไซต์ ไซต์หลักกำลังทำงานบน IIS ใน Azure IIS สามารถจัดการการเปลี่ยนเส้นทางได้เช่นเดียวกับที่เว็บเซิร์ฟเวอร์ใด ๆ สามารถทำได้ แต่ปัญหาคือไคลเอนต์นี้จะต้องนำการจัดการการเปลี่ยนเส้นทางไปใช้ในกระบวนการพัฒนาของตนและพวกเขาก็ยุ่งอยู่แล้ว
ปัญหาคือการเปลี่ยนเส้นทางรูปแบบ. htaccess โดยทั่วไปไม่เป็นไปได้…เราต้องเขียนการเปลี่ยนเส้นทางด้วย PHP จริงๆ ในการแก้ปัญหาเรากำหนดเส้นทางคำขอไปยัง WordPress เพื่อระบุว่ามีการเปลี่ยนเส้นทางบนเส้นทางเก่าหรือไม่
ภายใน header.php ไฟล์ของธีมลูกของเราเรามีฟังก์ชั่น:
function my_redirect ($oldlink, $newlink, $redirecttype = 301) {
$olduri = $_SERVER['REQUEST_URI'];
if(strpos($olduri, $oldlink) !== false) {
$newuri = str_replace($oldlink, $newlink, $olduri);
wp_redirect( $newuri, $redirecttype );
exit;
}
}
เราไม่ต้องกังวลกับการใส่ฟังก์ชันใน functions.php เพียงเพราะมันจะส่งผลกระทบต่อไฟล์ส่วนหัวเท่านั้น จากนั้นภายในไฟล์ header.php เรามีรายการการเปลี่ยนเส้นทางทั้งหมด:
my_redirect('lesson_plans', 'lesson-plan');
my_redirect('resources/lesson-plans/26351', 'lesson-plan/tints-and-shades');
my_redirect('about/about', 'about/company/');
ด้วยฟังก์ชันดังกล่าวคุณยังสามารถระบุประเภทของการเปลี่ยนเส้นทางที่คุณต้องการตั้งค่าคำขอส่วนหัวได้เราเพิ่งกำหนดค่าเริ่มต้นเป็นการเปลี่ยนเส้นทาง 301 เพื่อให้เครื่องมือค้นหายอมรับ