Перанакіраванне WordPress у загаловак
,en убудова для перанакіравання пабудаваны для 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, каб пошукавыя сістэмы яго выканалі.