Перенаправить старые URL записей на новый URL

Вопрос или проблема

Это может иметь простой ответ, о котором я не знаю, но я не знаком с перенаправлениями на 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 записи.

  1. Вы можете установить плагин “Safe Redirect Manager” и настроить его из панели администратора.
  2. Вы можете написать фрагмент кода в файле 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 без необходимости редактировать код.

Шаги по установке и настройке:

  1. Перейдите в консоль WordPress и выберите ПлагиныДобавить новый.
  2. Найдите Safe Redirect Manager и установите его.
  3. Активируйте плагин.
  4. Перейдите в раздел настроек плагина и добавьте новые правила перенаправления. Например, вы можете указать, что все старые 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:

  1. Перейдите к Rank MathРедиректы в консоли WordPress.
  2. Нажмите на кнопку "Добавить новый редирект".
  3. Введите старый URL (например, /post-name) и новый URL (например, /blog/post-name).
  4. Выберите тип редиректа (обычно выбирается 301 — постоянный редирект).
  5. Повторите для всех необходимых URL.

Набор правил редиректов в .htaccess

Если вы хотите вернуть 404 ошибки на уровне серверного конфигурации, вы можете добавить следующие строки в файл .htaccess:

RewriteEngine On
RewriteRule ^old-post-name$ /blog/new-post-name [R=301,L]

Заключение

Перенаправление старых URL-адресов на новые — это важная задача, которая помогает сохранить трафик и улучшить SEO вашего сайта. Используя один из предложенных методов, вы сможете эффективно реализовать эту задачу. Пожалуйста, перед любыми изменениями в коде убедитесь, что у вас есть резервная копия сайта, что поможет избежать неприятных последствий в случае ошибки.

Оцените материал
Добавить комментарий

Капча загружается...