Перенаправление после изменения постоянной ссылки – какой regex использовать?

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

Я совершенно не разбираюсь в регулярных выражениях. Я видел много примеров кода для перенаправления в файле .htaccess, но примеры в основном для изменения дат. Остальные говорят использовать плагин Redirection, который я уже использую для простых единичных перенаправлений, но я не знаю регулярных выражений для изменения постоянной ссылки. У нас 743 поста, поэтому я не буду делать это по одному!

Вот старая и новая структура:

старая: /%post_id%/%postname%
новая: /%category%/%postname%

Любая помощь в том, что мне нужно добавить в файл .htaccess или плагин перенаправления для этого конкретного изменения постоянной ссылки, будет очень полезна!

Вы можете сделать это, переписав старую URL-адресацию как запрос с помощью регулярных выражений. Вы можете сделать это либо по идентификатору поста, либо по имени поста. В этом случае я думаю, что имя поста, вероятно, более безопасно (избегает ложных совпадений с каким-либо другим путем, который может начинаться с чисел).

В пользовательских функциях, что-то вроде этого:

add_rewrite_rule( '^[0-9]+/(.*)/?', 'index.php?&name=$matches[1]','top' );

Похожие регулярные выражения будут работать в .htaccess или плагине перенаправления.

По сути, это переписывание URL-адреса как запроса и передача его в WordPress. WordPress использует это для поиска поста, а затем возвращает правильную постоянную ссылку, как определено в вашей структуре. По сути, это два перенаправления.

Я бы не стал этого делать, если только веб-сайт не был бы очень маленьким, с небольшим количеством страниц/постов, и не планировал бы роста. Это может быть немного лучше для SEO с точки зрения структуры ссылок, но могут быть потери в скорости.

Эта статья хорошо это объясняет, хотя рекомендация автора использовать год/дату далеко не оптимальна, и в плане скорости, и в плане SEO, я думаю.

Структура /%post_id%/%postname% так хороша, как это возможно для WordPress. Маленькие сайты с небольшим количеством страниц являются исключением — там используйте самую SEO-дружественную структуру ссылок — будь то только имя поста, или категория/имя поста, тег/имя поста и т.д. — в зависимости от вашей структуры тегов/категорий и “организации” контента (является ли “логическая карта сайта” допустимым английским термином?).

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

Совершая изменения в структуре постоянных ссылок для вашего сайта на WordPress, важно обеспечить правильную переадресацию, чтобы не потерять трафик и сохранить SEO-оптимизацию. В вашей ситуации, когда вы переходите с устаревшей структуры /%post_id%/%postname% на новую /%category%/%postname%, можно использовать регулярные выражения для настройки перенаправлений в файле .htaccess или через плагин редиректов, такой как Redirection.

1. Решение через .htaccess

Вы можете добавить следующие строки в ваш файл .htaccess, чтобы настроить перенаправление:

RewriteEngine On
RewriteRule ^([0-9]+)/(.+)$ /$2 [L,R=301]

Объяснение:

  • RewriteEngine On – включает модуль обработки правил.
  • RewriteRule ^([0-9]+)/(.+)$ /$2 [L,R=301] – это правило осуществляет перенаправление. Оно ищет URL, который начинается с цифрового идентификатора ([0-9]+), после чего идет постнейм ((.+)), и перенаправляет на новый URL-адрес, состоящий из только постнейма (/$2). Код R=301 указывает на постоянное перенаправление, что критично для SEO.

2. Использование плагина Redirection

Если вы хотите использовать плагин, в секции "Редиректы" задайте следующее правило:

  • Источник URL: ^/([0-9]+)/(.+)$
  • Целевой URL: /$2

3. Реализация через кастомные функции WordPress

Если вы предпочитаете добавить правило в функции WordPress, используйте следующий код:

add_rewrite_rule('^[0-9]+/(.*)/?', 'index.php?&name=$matches[1]','top');

Заключение

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

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

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