Пренасочване на WordPress в заглавната част

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

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.