Поддержка Проблемы и решения Постоянные ссылки. Вчера и сегодня.

  • Сегодня, пытаясь сделать еще один WP сайт столкнулся с такой проблемой. Точнее — с отсутствием проблемы, которая была раньше.

    Речь идет вот о чем. В WP 3.7 после того как я поменял постоянные ссылки со значения по умолчанию сайт/?p=123 на сайт/sample-post/ и применил плагини Cyr to Lat enhanced записи и страницы сайта при заходе на них по старым url с других сайтов и поисковиков отдавали ошибку 404. Причем 404 отдавалась даже при внутренним ссылкам Мне пришлось немало повозиться, чтобы устранить эту проблему

    Сейчас же, в 4.2.2, проделав все тоже самое никаких проблем с 404 я к своему удивлению и к своей великой радости не увидел!.

    Хотелось бы знать в чем дело — это я что то начудил 2,5 года назад Или за это время WP научился сам делать 301 редиректы?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Вообще эта функция еще в версии 2.1 появилась: https://core.trac.wordpress.org/browser/tags/4.2.2/src//wp-includes/query.php#L4648 то есть при сталкновении с 404 WordPress в некоторых случаях выполняет поиск по мета-данным _wp_old_slug.

    при сталкновении с 404 WordPress в некоторых случаях выполняет поиск по мета-данным _wp_old_slug.

    Можно об этом чуть подробней?
    С удивлением узнал о существовании https://codex.wordpress.org/wp_old_slug_redirect но не понятно как использовать.

    Сейчас же, в 4.2.2, проделав все тоже самое никаких проблем с 404 я к своему удивлению и к своей великой радости не увидел!.

    а я вот словил на клиентском сайте.
    сначала для ссылок был применен Cyr-to-Lat — старые ссылки редиректили на новые.
    а затем заказчик настоял на смене ЧПУ (добавление category) — теперь все старые русские ссылки не работают.

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

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    С удивлением узнал о существовании https://codex.wordpress.org/wp_old_slug_redirect но не понятно как использовать.

    Если изменить ярлык записи, то в поле _wp_old_slug автоматически сохранится прежнее значение, и WordPress будет перенаправлять старый адрес на новый. На этом основан принцип сохранения старых ссылок в Cyr-To-Lat. Для страниц это (пока) не работает, только для записей.

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

    В _wp_old_slug хранится не весь URL, а только ярлык. Ограничений нет, он может меняться несколько раз, и каждый из старых ярлыков будет перенаправляться на текущий. В вашем случае проблема в смене структуры ссылок — перенаправления с /%postname%/ на /%category%/%postname%/ WordPress не делает (только в обратную сторону).

    WordPress не делает (только в обратную сторону).

    а в каких случаях WordPress делает редиректы, а в каких нет?
    интересует, смена на какую структуру не сломает старые ссылки.

    Если изменить ярлык записи, то в поле _wp_old_slug автоматически сохранится прежнее значение, и WordPress будет перенаправлять старый адрес на новый

    Спасибо, Сергей. Не знал. Однако и не припомню что бы этот механизм работал. По моему после изменения слага 404 отдавалось. Но я проверю обязательно :).

    интересует, смена на какую структуру не сломает старые ссылки

    Из того, что сказал Сергей, следует, что только при изменении слага будет редирект:

    В _wp_old_slug хранится не весь URL, а только ярлык.

    те если в ЧПУ изменены «уровни» урла (добавлена /категория/), то работать не будет. Другой вопрос если изменёно формирование части поста (напр добавлена дата к слагу). Это надо проверить.

    Отсюда родился вопрос — а короткие урлы (дефолтные) в это механизме участвуют? В см — не через них ли редиректиться?

    Отсюда родился вопрос — а короткие урлы (дефолтные) в это механизме участвуют? В см — не через них ли редиректиться?

    Насколько я знаю, для ?p=N работает другой механизм — редирект на канонический URL.

    Насколько я знаю, для ?p=N работает другой механизм — редирект на канонический URL.

    Ну вот и подумалось — мб это будет второй шаг. Ну те двойной редирект.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Постоянные ссылки. Вчера и сегодня.» закрыта для новых ответов.