Przekieruj WordPress w nagłówku

Przekierowanie nagłówka WordPress

W ramach projektu wtyczka przekierowania zbudowany dla WordPress to fantastyczny sposób organizowania i zarządzania przekierowaniami. Używam go na tej stronie i zorganizowałem moje grupy przekierowań dla zaktualizowanych postów, linków partnerskich, plików do pobrania itp.

Jednak napotkałem unikalny problem polegający na tym, że mam odwrotne proxy skonfigurowane dla klienta, w którym WordPress działa na ścieżce… ale nie w katalogu głównym witryny. Lokacja główna działa w usługach IIS na platformie Azure. Usługi IIS mogą zarządzać przekierowaniami tak samo, jak każdy serwer sieci Web, ale problem polega na tym, że ten klient musiałby wprowadzić zarządzanie przekierowaniami do swojego procesu tworzenia - a oni już są zajęci.

Problem w tym, że typowe przekierowanie w stylu .htaccess nie jest możliwe… tak naprawdę musimy pisać przekierowania w PHP. W ramach rozwiązania kierujemy żądania do WordPress w celu określenia, czy na starych ścieżkach są jakieś przekierowania.

W ciągu header.php plik naszego motywu potomnego, mamy funkcję:

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;
	}
}

Nie zawracaliśmy sobie głowy umieszczaniem tej funkcji w functions.php tylko dlatego, że wpłynęłaby ona tylko na plik nagłówkowy. Następnie w pliku header.php mamy po prostu listę wszystkich przekierowań:

my_redirect('lesson_plans', 'lesson-plan');
my_redirect('resources/lesson-plans/26351', 'lesson-plan/tints-and-shades');
my_redirect('about/about', 'about/company/');

Dzięki tej funkcji możesz również określić, na jaki typ przekierowania chcesz ustawić żądanie nagłówka, właśnie domyślnie ustawiliśmy przekierowanie 301, aby wyszukiwarki go honorowały.

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.