Пренасочване на 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 за намаляване на спама. Научете как се обработват данните за коментарите ви.