Omdiriger WordPress i header

WordPress header omdirigering

omdirigering plugin bygget til WordPress er et fantastisk middel til at organisere og styre omdirigeringer. Jeg bruger det på dette websted og har organiseret mine grupper af omdirigeringer til opdaterede indlæg, tilknyttede links, downloads osv.

Imidlertid løb jeg ind i et unikt problem, hvor jeg har oprettet en omvendt proxy til en klient, hvor WordPress kører på en sti ... men ikke roden til webstedet. Det primære websted kører på IIS i Azure. IIS kan administrere omdirigeringer, ligesom enhver webserver kan, men problemet er, at denne klient bliver nødt til at placere omdirigering i deres udviklingsproces - og de har allerede travlt.

Det drejer sig om, at en typisk omdirigering af .htaccess-stil ikke er en mulighed ... vi skal faktisk skrive omdirigeringerne i PHP. Som en løsning dirigerer vi anmodningerne til WordPress for at identificere, om der er nogen omdirigeringer på gamle stier.

Inden for header.php fil af vores børnetema, har vi en funktion:

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

Vi gider ikke at sætte funktionen i functions.php simpelthen fordi den kun påvirker headerfilen. Derefter har vi simpelthen en liste over alle omdirigeringer inden for header.php-filen:

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

Med denne funktion kan du også angive, hvilken type omdirigering, du vil indstille headeranmodningen til, vi har netop standardiseret den til en 301-omdirigering, så søgemaskinerne respekterer den.

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.