Как убрать редирект?
Старые версии WordPress работали одновременно с некрасивыми, классическими (типа ?p=123), и красивыми, т.н. ЧПУ, ссылками (типа /category/prostopost). Однако в новых версиях разработчики сделали так, что запрос по «старой» ссылке приводит к редиректу на новую (код возврата 301). Для людей это скорее хорошо, чем плохо. Для Гугля тоже — он просто идет на новый адрес. А вот Яндекс, проиндексировавший в свое время старые ссылки, на 301 реагирует не совсем адекватно. (И если б только на это!)
Некоторые пользователи вносят изменения в файлы дивжка, то бишь делают хак. Что не есть гут. На самом деле эта «неисправность» лечится вполне легальным способом, через API WP, путем добавления одной строки в, скажем, в functions.php Темы или в плагин. Строка такая:
remove_action('template_redirect', 'redirect_canonical');
Правда просто? Как всегда. За что и люблю WordPress! 🙂
У меня в вебмастере Яндекс этих 301 Moved Permanently сотни. Что с этим делать, как их все удалить, может воспользоваться плагином Remove Old Slugs
Не обращайте на них внимания 🙂
Добрый день. У мня тоже в вебмастере яндекса куча мусора, типа /?p с 301 на нужные ЧПУ. Но хуже всего, что при создании каждого нового поста количество таких страниц увеличивается. Можно ли это как-то отключить, чтобы хоть новые не добавлялись, и сильно ли это критично?
Редирект с «короткой» ссылки на ЧПУшную — нормально. Равно как и с неканоничной на каноничную (rel canonical). В том, что Яшка нажрался «мусора», нет ничего страшного. Это его проблема. Редиректы не мешают правильной индексации сайта, а наоборот — помогают.
Благодарю за объяснения, теперь все стало намного понятнее. Либо найду способ отключить редиректы вообще, либо пусть уже будет с редиректами.
А есть возможность выборочно удалить существующие редиректы?
Вот, допустим, был у меня пост со ссылкой 1, я поменял ссылку на 2. В результате этого у меня проставился редирект со ссылки 1 на ссылку 2.
Можно ли найти, где после этого прописалось правило, что со ссылки 1 надо поставить редирект на 2 и удалить его? Я так понимаю, где-то это должно быть прописано. В базе данных или еще где-то.
Таким образом можно было бы не избавляться от возможности редиректа при смене адреса вообще, так как в будущем это может пригодиться, а просто убрать существующие редиректы, которые не нужны.
А если в базе тысячи постов, запоминать для всех постов всякий раз при смене схемы ЧПУ? База не лопнет, как думаете? И вообще, никакие редиректы нигде не запоминаются. Если по неканоничной ссылке был обнаружен пост, движок делает редирет на каноническую, соответствующую текущим настройкам ЧПУ, чтобы не было миллиона разных адресов у одной записи.
Как обычно, сначала пишем, потом читаем.
Сейчас дошло, что код «только отключает редирект с некрасивой на красивую».
А есть возможность сделать так чтобы при изменении уже существующей чпу-ссылки с нее не ставился редирект на новую?
Был какой-то плагин, не помню как зовут, что-то про пермалинк. Да и не уверен, что он нормально работает в новых версиях WP, движок сильно изменился по сравнению с WP2.
Ю. Б., подскажите, могут ли быть причины, по которым код, указанный в посте, может не срабатывать в WP 3.2.1?
Я использую в functions.php функцию remove_action, например, для того, чтобы не выводилась версия wp в коде страницы:
remove_action( ‘wp_head’, ‘wp_generator’ );
Когда добавляю строку кода, указанную в посте, затем меняю какой-либо урл поста на новый, сохраняю, а затем вбиваю старый адрес в браузер, все равно меня перебрасывает на новый адрес.
1)не полностью скопировали код, -скопировал полностью, проверил несколько раз.
2)не туда вставили, -вставил в файл functions.php после строки, которая убирает вывод версии wp.
3)использовали кривой редактор — копировал прямо из этой страницы и вставлял в файл functions.php без изменений в редакторе темы.
А плагин для feedburner не пробовали? Он, вроде как, корректно редиректит куда надо.
Ю.Б., а не подскажите еще «до кучи» как отредиректить фид? Я подписку на РСС сделал через ФидБарнер, все ссылки в теме поменял, так что при клике по РСС подписчик перенаправляется на ФидБарнер. Но через панель Яндекс.Вебмастер заметил, что он находит ссылки типа ?=p… по внутренним ссылкам фида, т.е. когда я ввожу адрес_моего сайта/feed/, то получаю «сырой фид». Многие советуют 301 редирект на ФидБарнер, но тогда он сам себя редиректит, и получается форменная глупость. Где-то я встречал советы по поводу 302 редиректа, но не знаю, что из этого может выйти. Подскажите, как сделать все красиво, и преобразовать «сырой» фид как-нибудь, например тем же редиректом на ФидБарнер, но только чтобы все вышло грамотно и работало по человечески…
Ю.Б., Вы — гений. Снимаю шляпу! Я 2 месяца никак не мог понять, почему Яша не индексирует страницы блога. Хоть я и чайник, но весьма аккуратно подошел к созданию нового проекта (еще бы, он ведь полностью коммерческий), и постарался сделать все без ошибок. И тут… на тебе… по непонятным причинам обычно любезный Яша, показывает мне «дулю». И тут недели 2 незад обнаружил, что WordPress 3.0.4. создает какой-то внутрений 301 редирект со страниц ?=p… на страницы с ЧПУ. Я уже сталкивался с тем, что такие «фокусы» могут приводить или к нежеланию Яши индексировать такие страницы, или очень медленной (3-4 месяца) их индексации. Однако неделю искал-искал, но не мог найти вразумительного. Все «гуру» предлагали решения из разряда: «если у вар на руке вскочил прыщик — отрубите руку». И тут случайно наткнулся на Ваш блог и такое простое и элегантное решение! 🙂
Вообще-то, эти ссылки прямо в админке WP есть 🙂
http://mywordpress.ru/support/
http://forum.maxsite.org/
http://codex.wordpress.org/
Спасибо. Только не нашел у Вас на блоге ссылок на форум и этот Кодекс). Не подскажете где это…дальше сам разберусь. Заранее благодарен.
Если нет functions.php, то его не долго создать. Инструкция по плагинописанию есть в Кодексе. Если ЧПУ не работает, то, скорее всего, проблема в .htaccess (подробности искать на форуме). Код не меняет формат ссылок, только отключает редирект с некрасивой на красивую.
а если нет functions.php в файлах темы, в какой плагин эту строку прописывать нужно? это работает для записей или страниц тоже…больше интересуют страницы, чтобы адрес был не ?p# , а вида «название_страницы», можно это как-нибудь сделать? менял чпу , но везде при переходе на страницы получал not found..
Вроде заработало. Сайт стал открываться и с www и без.
А сначала был вообще жесткач — сайт работает, а в админку не пускает ))
Метод работает, проверено на 2.6.3.
Дикая радость сменилась на разочарование… у меня тоже не заработало (((
СПАСИБИЩЕ!!! Просто нет слов! А я уже запарился, думал что так и пропадут страницы из индекса.! 🙂
Большой фенкс. Долгонько искал решение проблемы.
А тут вот оно решение и работающее. Попробую применить, тем более, что как ранее сказано, с Я. наметилась проблема с редиректом и ЧПУ.
Всё может быть. У людей и сам WordPress бывает вообще не работатет и даже не инсталлируется. А такая фигня, как у Вас, Прохожий, может быть из-за того, что 1)не полностью скопировали код, 2)не туда вставили, 3)использовали кривой редактор и т.д. К сожалению, Господь не наделил меня телепатией, так что точнее назвать причину не могу.
Не работает 🙁
http://img517.imageshack.us/img517/9250/clipboard1bv7.png