تغییر مسیر وردپرس در هدر
La افزونه تغییر مسیر ساخته شده برای وردپرس وسیله ای خارق العاده برای سازماندهی و مدیریت تغییر مسیرها است. من از آن در این سایت استفاده می کنم و گروه های خود را برای هدایت پست های به روز شده ، پیوندهای وابسته ، بارگیری ها و غیره سازماندهی کرده ام.
با این حال ، من یک مشکل منحصر به فرد پیدا کردم که در آن یک پروکسی معکوس برای یک مشتری تنظیم کردم که در آن وردپرس در یک مسیر اجرا می شود ... اما نه ریشه سایت. سایت اصلی با استفاده از IIS در Azure در حال اجرا است. IIS می تواند هدایت ها را درست مانند هر وب سروری مدیریت کند ، اما مشکل این است که این مشتری باید مدیریت تغییر مسیر را در روند توسعه خود قرار دهد - و آنها از قبل مشغول هستند.
مسئله این است که تغییر مسیر معمولی سبک .htaccess امکان پذیر نیست ... ما باید هدایت ها را در PHP بنویسیم. به عنوان یک راه حل ، ما درخواست ها را به وردپرس هدایت می کنیم تا در صورت وجود تغییر مسیر در مسیرهای قدیمی ، شناسایی کنیم.
در فایل 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;
}
}
ما زحمت قرار دادن این تابع در توابع function.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 تبدیل کرده ایم تا موتورهای جستجو از آن استقبال کنند.