WordPress отслеживает историю URL поста и предоставляет автоматические редиректы?

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

Я только что изменил URL одного из своих постов с

http://2011.denmark.wordcamp.org/session/theme-frameworks-trends-og-standardisering/

на

http://2011.denmark.wordcamp.org/session/wordpress-themes-mere-end-design/

Теперь, если я перехожу по старому URL, меня перенаправляет на новый. Это, конечно, здорово!
…Но это особенность WordPress или что тут происходит?

Отслеживает ли WP историю URL постов, предоставляя перезаписи/перенаправления для прежних URL?
Смотрю на заголовок ответа и вижу, что WP отправляет SEO-дружественное перенаправление 301… Да!?
Я думал, что мне придется настраивать эти перенаправления с помощью правил переписывания в моем .htaccess, так что мне интересно узнать, как это происходит, что WP дает мне мой новый URL, когда я ввожу старый.

Буду признателен за любую информацию о том, как WP это обрабатывает.

Отслеживает ли WP историю URL постов, предоставляя перезаписи/перенаправления для прежних URL?

Да, отслеживает. Если вы изменяете слуг поста, WordPress перенаправляет старый на новый URL (если ваша серверная конфигурация это позволяет).

Буду признателен за любую информацию о том, как WP это обрабатывает.

К сожалению, я никогда не видел, чтобы эта функция была должным образом задокументирована в codex. Поэтому я не могу сказать вам, какая функция ядра WP это делает и где в ядре она расположена.

Однако я могу сказать следующее: Ранее используемые слуги хранятся в базе данных в таблице wp_postmeta. Проверьте наличие _wp_old_slug в колонке meta_key (фактические слуги хранятся в колонке meta_value). Таким образом, если вы когда-либо захотите, чтобы это поведение по умолчанию не происходило в конкретном случае, здесь нужно удалить значение.

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

По крайней мере, с текущим WordPress (v6.7) функция wp_old_slug_redirect вызывается на хуке ‘template_redirect’.

Тем не менее, она работает только с “неиерархическими” типами постов, а значит, не для страниц!

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

Да, WordPress на самом деле отслеживает историю URL-адресов постов и предоставляет автоматические редиректы для ранее использованных URL. Когда вы изменяете ярлык (slug) поста, система автоматически создает перенаправление 301 с старого URL на новый. Это функция разработана для повышения удобства пользователей и улучшения SEO.

Как это работает?

Когда вы изменяете URL поста:

  1. Автоматическое перенаправление: WordPress использует функцию wp_old_slug_redirect, которая срабатывает на хуке template_redirect. Это означает, что во время обработки запроса к вашему сайту WordPress проверяет, есть ли старый URL для поста. Если да, то система отправляет ответ с кодом 301, который указывает браузерам и поисковым системам, что содержимое перемещено на новый URL.

  2. Хранение старых ярлыков: Старые ярлыки хранятся в базе данных в таблице wp_postmeta. Конкретно, информация о старом ярлыке сохраняется под мета-ключом _wp_old_slug. Таким образом, если вы захотите отменить автоматическое перенаправление для конкретного случая, вы можете удалить соответствующее значение из этой таблицы.

Важно отметить

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

  • Однако, если вы решите создать новый пост с тем же именем, которое уже использовалось у старого поста, могут возникнуть конфликты. Это может привести к нежелательным последствиям, таким как неправильное перенаправление.

Настройка серверов

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

Заключение

Функция отслеживания URL-истории и автоматических редиректов в WordPress — это мощный инструмент для поддержания целостности вашего сайта и обеспечения плавного опыта для пользователей. Эта функция позволяет минимизировать затраты времени на обслуживание сайтов, улучшает SEO-позиции и предоставляет пользователям возможность без труда находить обновлённый контент.

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

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