Пренасочване на WordPress в заглавната част
- плъгин за пренасочване създаден за 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, така че търсачките да я изпълнят.