При изменении адреса страницы, WordPress сохраняет старый адрес и делает с него редирект на новый

05.11.2016

Собственно, в этом и вся суть, что, если вы измените постоянную ссылку записи, то WordPress сохранит старый url и создаст 301 редирект со старого на новый url.

Вот по этой ссылке я нашел немного информации по этому поводу — link.

Ниже мой вольный перевод сообщений из топика по ссылке выше.

Вопрос от mikkelbreum

Я только что изменил URl одного из своих постов с
http://site.org/session/theme-frameworks-trends-og-standardisering/
на
http://site.org/session/wordpress-themes-mere-end-design/

И сейчас при при переходе по старому URl, меня редиректит на новый. Это, конечно круто! Но это фича WordPress или баг?

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

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

Ответ от Johannes Pille

Отслеживает ли WP историю URL-адресов, создавая редиректы для старых адресов?

Да, отслеживает. Если вы измените slug записи, WordPress создаст 301 редирект со старого адреса на новый (если сервер позволяет).

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

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

Что я могу сказать: предыдущие версии используемых урлов расположены в базе данных в таблице wp_postmeta. Посмотрите _wp_old_slug в колонке meta_key, значение урла будет храниться в колонке meta_value. И если вы не хотите получать редирект при переходе по старой ссылке, то просто удалите значение в колонке meta_value.

Ситуации, когда эта фича WP может оказаться багом — это, когда вы изменили урл записи А или переименовали саму запись А, а потом создаете запись Б с таким же названием какое было ранее у записи А, и тогда при переходе по ссылке записи Б, вас будет редиректить на запись А, потому что в базе данных сохранился редирект старого урла А, который сейчас совпадает с урлом Б, на урл А, если вы понимаете о чем я.

Полезная инфа:

Комментарии (3) к “При изменении адреса страницы, WordPress сохраняет старый адрес и делает с него редирект на новый”

  • Татьяна

    У меня вопрос по случаю, когда как раз «Ситуации, когда эта фича WP может оказаться багом — это, когда вы изменили урл записи А или переименовали саму запись А, а потом создаете запись Б»..
    Что можно сделать в этом случае??
    Методом проб определила, что достаточно просто изменить адрес постов, например вместо «-» поставить «_», но.. страниц, созданных «поверх» старых очень много, ок. 200 (( Есть ли какой-то способ попроще исправить мою проблему??
    Заранее признательна!

    Ответить
    • Denis Creative

      «И если вы не хотите получать редирект при переходе по старой ссылке, то просто удалите значение в колонке meta_value
      в статье было такое предложение решения проблемы, должно помочь.

      Ответить
  • Татьяна

    Спасибо за ответ и за перевод — по крайней мере помогло понять с чем связана проблема с неработающими ссылками..
    Но я не могу найти в _wp_old_slug те meta_value, которые нужно удалять.. т.е. там почему-то несколько сотен раз указан один и тот же meta_value с разными meta_id и post_id.. только один из 200, которые не работают.
    Прошу прощения за банальность пояснений, я вообще-то с базой не умею работать, начиталась вот решила попробовать разобраться..
    В любом случае спасибо за дельную статью!

    Ответить

Оставить комментарий