Как перенаправить на определенный URL, если URL содержит определенный текст?

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

Я новичок в WordPress и пытаюсь создать плагин, который перенаправляет на цель, выбирая тот же пост из исходного URL в целевой URL. Пользователю просто нужно ввести URL, на который он хочет перенаправить. Плагин автоматически добавит URL поста, выбирая его из исходного поста для целевого поста.

например:
исходный URL-

www.example.com/mypost/random-key-here

целевой URL-

www.targeturl.com/

плагин автоматически добавит URL поста и случайный ключ, выбирая их из исходного URL в целевой URL, как это

www.targeturl.com/mypost/random-key-here

Пожалуйста, помогите мне, так как я не знаю, как создать административную сетку и как получить данные из административной сетки в код.

для более подробного объяснения:
оно может перенаправлять если

www.example.com/mypost1/

на

www.example2.com/mypost1/

но оно не перенаправляет автоматически

www.example.com/mypost/slide1

на

**`www.example2.com/mypost/`**

нам нужно сделать так, чтобы оно могло перенаправлять, заменяя основной исходный URL поста на целевой URL и оставляя остальные элементы такими же
например

www.example.com/mypost/slide1

заменить www.example.com/mypost/ на www.example2.com/mypost/ и остальные URL автоматически добавляются в целевой URL (slide1).
Я использую https://wordpress.org/plugins/redirection/ этот плагин, но хочу добавить такую функциональность в него.

Если на моем сайте была бы директория с названием dogs (/dogs/) и у меня было бы 100 страниц, таких как эти: –

https://www.codehaven.co.uk/dogs/page1/

https://www.codehaven.co.uk/dogs/page2/

https://www.codehaven.co.uk/dogs/page3/

Я бы не хотел использовать плагин для ручного перенаправления каждой страницы.
Поэтому полезно правило перенаправления, которое ищет /dogs/, как показано ниже.

RewriteEngine on

RewriteCond %{REQUEST_URI} /dogs/

RewriteRule .* /

Ответ или решение

Введение:

Создание плагина для автоматической переадресации URL-адресов в WordPress может значительно облегчить вашу работу с редиректами, особенно если речь идет о множестве страниц. В этом детальном руководстве мы рассмотрим, как вы можете реализовать данное решение, следуя принципу автоматической замены части URL-адреса.

Функциональность:

  1. Анализ исходного URL:

    • Ваша задача состоит в том, чтобы выделить общую часть URL (например, www.example.com/mypost/) и заменить ее на новый домен или путь (например, www.example2.com/mypost/).
    • При этом все, что идет после общего идентификатора, должно сохраняться (например, slide1). Это позволяет обеспечить адаптивное перенаправление, не теряя уникальные части URL.
  2. Пример с RewriteRule (только для Apache):

    • Используйте модуль Apache mod_rewrite для перенаправления. Основные правила могут выглядеть следующим образом:
      RewriteEngine on
      RewriteCond %{REQUEST_URI} ^/mypost/(.*)$
      RewriteRule ^(.*)$ http://www.example2.com/mypost/%1 [R=301,L]
    • Здесь RewriteCond проверяет, содержится ли в запросе /mypost/, и передает за ним все параметризированные значения в целевой URL.
  3. Создание плагина в WordPress:

    • Шаг 1: Заготовка плагина:
      Создайте новую папку в каталоге плагинов WordPress (/wp-content/plugins/) и добавьте файл, например, auto-redirect-plugin.php.
    • Шаг 2: Основной код плагина:
      • Зарегистрируйте новый хук для обработки правила перенаправления. Это может выглядеть следующим образом:
<?php
/*
Plugin Name: Auto Redirect Plugin
Description: Плагин для автоматической переадресации URL.
Version: 1.0
Author: Your Name
*/

add_action('init', 'auto_redirect_urls');

function auto_redirect_urls() {
    $current_url = "//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";

    // Пример замены для определенной структуры
    if (strpos($current_url, 'www.example.com/mypost/') !== false) {
        $new_url = str_replace('www.example.com/mypost/', 'www.example2.com/mypost/', $current_url);
        wp_redirect($new_url, 301);
        exit;
    }
}
?>
  • Этот плагин будет автоматически перенаправлять пользователей, если их URL соответствует указанному шаблону.

Оптимизация:

  1. SEO-ориентированные переадресации:

    • Все перенаправления обязательно должны быть 301, чтобы поисковые системы понимали, что страница была окончательно перенесена и перенося значимость.
  2. Проверка работоспособности:

    • После настройки необходимо протестировать несколько примеров, чтобы убедиться в правильной работе механизма перенаправления.

Заключение:

Создание WordPress-плагина для автоматической переадресации с учетом структуры URL значительно упростит управление сайтом. Закладывая базовое понимание работы с URL, модульными структурами Apache и PHP, можно обеспечить гибкую и эффективную замену URL-адресов.

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

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