Вопрос или проблема
Это может иметь простой ответ, о котором я не знаю, но я не знаком с перенаправлениями на WordPress. Вот мой вопрос:
Я настроил свои стандартные Записи
на mysite.com/post-name
.
Теперь я хочу перенаправить стандартные Записи
на mysite.com/blog/post-name
, чего я смог добиться через настройки постоянных ссылок, используя пользовательскую структуру /blog/%postname%/
.
Проблема в том, что старые URL (mysite.com/post-name
) не работают (404). Как мне перенаправить все эти старые Записи
на новый mysite.com/blog/post-name
URL? У меня много записей, поэтому я ищу способ сделать это массово.
Я искал ответы, но не нашел ничего удовлетворительного. Любая помощь будет высоко оценена. Спасибо.
Существует множество решений для перенаправления со старого URL записи на новый URL записи.
- Вы можете установить плагин “Safe Redirect Manager” и настроить его из панели администратора.
- Вы можете написать фрагмент кода в файле
functions.php
следующим образом:
add_action('template_redirect', 'post_redirect_by_custom_filters');
function post_redirect_by_custom_filters() {
global $post;
// этот массив может содержать имена категорий, слаги или даже ID.
$catArray = ['blog'];
if (is_single($post->ID) && !has_category($catArray, $post)) {
$new_url = "http://www.newurl.com/blog/{$post->post_name}/";
wp_redirect($new_url, 301);
exit;
}
}
Для получения дополнительной информации, пожалуйста, перейдите по следующей ссылке.
https://www.ryadel.com/en/wordpress-redirect-posts-categories-tags-custom-conditions-301-302/amp/
Я изменил пользовательскую структуру URL с example.com/post-name на example.com/%category%/%post-name%. У меня много страниц, около 1600 URL, теперь я хочу перенаправить свои старые URL на новые URL. Как я могу это сделать с бесплатной версией RankMath?
Ответ или решение
Для того чтобы перенаправить старые URL-адреса ваших постов на новые адреса в WordPress, вы можете воспользоваться несколькими подходами. Ниже представлены наиболее эффективные решения для выполнения этой задачи.
1. Использование плагина для редиректов
Один из самых простых способов — установка плагина для редиректов, такого как Safe Redirect Manager. Этот плагин позволяет управлять перенаправлениями из панели управления WordPress без необходимости редактировать код.
Шаги по установке и настройке:
- Перейдите в консоль WordPress и выберите Плагины → Добавить новый.
- Найдите Safe Redirect Manager и установите его.
- Активируйте плагин.
- Перейдите в раздел настроек плагина и добавьте новые правила перенаправления. Например, вы можете указать, что все старые URL-адреса вида
mysite.com/post-name
должны перенаправляться наmysite.com/blog/post-name
.
2. Использование кода в файле functions.php
Если вы предпочитаете более технический подход или хотите избежать использования плагинов, вы можете добавить следующий код в файл functions.php
вашей темы:
add_action('template_redirect', 'redirect_old_posts_to_new');
function redirect_old_posts_to_new() {
global $post;
// Проверяем, является ли это одиночный пост
if (is_single($post->ID)) {
// Генерируем новый URL
$new_url = home_url("/blog/{$post->post_name}/");
// Выполняем перенаправление
wp_redirect($new_url, 301);
exit;
}
}
Этот код проверяет, является ли текущая страница отдельным постом, и если это так, выполняет перенаправление на новый URL. Использование кода для редиректов позволяет избежать зависимости от плагинов, но требует аккуратности, так как ошибки в коде могут повлиять на работу сайта.
3. Использование Rank Math
Если вы уже используете плагин Rank Math, вы можете легко настроить перенаправления через его интерфейс, даже в бесплатной версии.
Шаги для настройки перенаправлений в Rank Math:
- Перейдите к Rank Math → Редиректы в консоли WordPress.
- Нажмите на кнопку "Добавить новый редирект".
- Введите старый URL (например,
/post-name
) и новый URL (например,/blog/post-name
). - Выберите тип редиректа (обычно выбирается 301 — постоянный редирект).
- Повторите для всех необходимых URL.
Набор правил редиректов в .htaccess
Если вы хотите вернуть 404 ошибки на уровне серверного конфигурации, вы можете добавить следующие строки в файл .htaccess
:
RewriteEngine On
RewriteRule ^old-post-name$ /blog/new-post-name [R=301,L]
Заключение
Перенаправление старых URL-адресов на новые — это важная задача, которая помогает сохранить трафик и улучшить SEO вашего сайта. Используя один из предложенных методов, вы сможете эффективно реализовать эту задачу. Пожалуйста, перед любыми изменениями в коде убедитесь, что у вас есть резервная копия сайта, что поможет избежать неприятных последствий в случае ошибки.