Redirect WordPress në Header
La shtojcë ridrejtimi ndërtuar për WordPress është një mjet fantastik për organizimin dhe menaxhimin e ridrejtimeve. Unë e përdor atë në këtë sit dhe kam organizuar grupet e mia të ridrejtimeve për postime të azhurnuara, lidhje filiali, shkarkime, etj.
Sidoqoftë, unë hasa një problem unik ku kam një proxy të kundërt të vendosur për një klient ku WordPress po ekzekuton në një rrugë path por jo rrënjën e faqes. Faqja kryesore fillon të funksionojë në IIS në Azure. IIS mund të menaxhojë ridrejtimet ashtu si çdo server në internet mund, por problemi është se ky klient do të duhet të vendosë menaxhimin e ridrejtimit në procesin e zhvillimit të tyre - dhe ata janë të zënë tashmë.
Në diskutim është që një ridrejtim tipik i stilit .htaccess nuk është një mundësi ... ne duhet të shkruajmë përcjellimet në PHP. Si zgjidhje, ne i përcjellim kërkesat në WordPress për të identifikuar nëse ka ndonjë ridrejtim në shtigjet e vjetra.
Brenda header.php skedari i temës sonë të fëmijëve, ne kemi një funksion:
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;
}
}
Ne nuk u shqetësuam të vendosnim funksionin në functions.php thjesht sepse do të ndikonte vetëm në skedarin e kokës. Pastaj, brenda skedarit header.php, ne thjesht kemi një listë të të gjitha ridrejtimeve:
my_redirect('lesson_plans', 'lesson-plan');
my_redirect('resources/lesson-plans/26351', 'lesson-plan/tints-and-shades');
my_redirect('about/about', 'about/company/');
Me atë funksion, ju gjithashtu mund të specifikoni se në çfarë lloji të ridrejtimit dëshironi të vendosni kërkesën e kokës, ne thjesht e kemi paracaktuar atë në një ridrejtim 301 në mënyrë që motorët e kërkimit ta respektojnë atë.