Chuyển hướng WordPress trong Header
Sản phẩm plugin chuyển hướng được xây dựng cho WordPress là một phương tiện tuyệt vời để tổ chức và quản lý các chuyển hướng. Tôi sử dụng nó trên trang web này và đã tổ chức các nhóm chuyển hướng của mình cho các bài đăng được cập nhật, liên kết liên kết, tải xuống, v.v.
Tuy nhiên, tôi đã gặp phải một vấn đề duy nhất là tôi có một proxy ngược được thiết lập cho một ứng dụng khách mà WordPress đang chạy ở một đường dẫn… nhưng không phải là thư mục gốc của trang web. Trang web chính đang chạy trên IIS trong Azure. IIS có thể quản lý chuyển hướng giống như bất kỳ máy chủ web nào có thể, nhưng vấn đề là ứng dụng khách này sẽ cần đưa quản lý chuyển hướng vào quy trình phát triển của họ - và họ đã bận rồi.
Vấn đề là một chuyển hướng theo kiểu .htaccess điển hình không phải là một khả năng… chúng tôi thực sự phải viết các chuyển hướng bằng PHP. Như một giải pháp, chúng tôi định tuyến các yêu cầu đến WordPress để xác định xem có bất kỳ chuyển hướng nào trên các đường dẫn cũ hay không.
Trong header.php tệp chủ đề con của chúng tôi, chúng tôi có một chức năng:
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;
}
}
Chúng tôi không bận tâm đến việc đưa hàm vào functions.php vì nó chỉ ảnh hưởng đến tệp tiêu đề. Sau đó, trong tệp header.php, chúng ta chỉ cần có một danh sách tất cả các chuyển hướng:
my_redirect('lesson_plans', 'lesson-plan');
my_redirect('resources/lesson-plans/26351', 'lesson-plan/tints-and-shades');
my_redirect('about/about', 'about/company/');
Với chức năng đó, bạn cũng có thể chỉ định loại chuyển hướng mà bạn muốn đặt yêu cầu tiêu đề, chúng tôi vừa đặt mặc định nó thành chuyển hướng 301 để các công cụ tìm kiếm sẽ tuân theo nó.