WordPress отдаёт все страницы с 301-м кодом
С этой проблемой я столкнулся уже после установки этого блога, денька эдак через два ![]()
Дело было так:
В корень домена был установлен свежий WordPress, скачанный с ru.wordpress.org. Затем после настройки, установки нужных плагинов и запуска блога выяснилось, что все хидеры отданных страниц идут с 301-м кодом, даже те, которые, по идее, должны отдаваться с 200-ым или 404-ым. Я начал было грешить на хостинг, но у меня на нем уже стоят несколько сайтов и никогда таких проблем не было.
Но делать было нечего, нужно было искать искать, где порылась собака, иначе Yandex мог этот блог не переварить
На всякий случай, я проверил заголовки не только плагином Мозиллы Live HTTP Headers, но и на парочке сервисов проверки HTTP-заголовков. И оказалось, что мне не показалось )
Теперь нужно было проверить сам WordPress.
Первым делом, я убрал из .htaccess 301-ый редирект домена на www и в настройках WordPress-а тоже поставил адрес блога без www, но блог продолжал отдавать все страницы с 301-м кодом. Так, значит, дело было не в бобине ))
Затем настала очередь плагинов, и я стал их по одному деактивировать, надеясь выявить «виновника», но и плагины оказались здесь не причём.
Совсем уже не надеясь ни на что, я сменил тему блога на дефолтную — ничего не изменилось, блог продолжил отстреливаться хидерами с 301-мы кодом )
Порывшись в инете, я нашел статью, которая явственно указывает на то, что это косяк именно вордпресса, и где автор рекомендует в таких случаях делать следующее:
1. Или закоментировать строку wp_redirect($redirect_url, 301); в файле /wp-includes/canonical.php
2. Либо в текущей теме вордпресса отредактировать файл functions.php добавив первой строчкой remove_action(‘template_redirect’, ‘redirect_canonical’);
Попробовав первый вариант, с исправлением canonical.php, я получил следующее: все страницы блога начали отдаваться с кодом 200, даже те, которых не существует. Правда, на несуществующих страницах отдавалсь чистая страница.
Во-втором же случае, всё аналогично, только на несуществующих страницах отображался индекс блога.
Определенный результат, конечно, получен, но это где 404-ая ошибка на несуществующих страницах? Пока я продолжал копать, в качестве временного решения оставил первый вариант, так хоть не будет дублирования индекса.
Затем, я решил потеребить структуру пермалинков и вуаля! Оказалось, что в моем случае, Вордпресс, сцуко, почему-то так шутит только при пермалинках вида cetlot.com/?p=123, при остальных же всё ок…
Вот такая долгая дорога в дюнах… )


18 Июн 2009 в 23:53
Прошло два дня, с того момента, как я наткнулся на ваш блог
Прочел от корки до корки. Но этот пост однозначно один из самых лучших!
19 Июн 2009 в 15:42
Даже спамерам нравится
30 Июн 2009 в 08:03
admin: Даже спамерам нравится
Стопудофф.
З.Ы. Пока с таким не сталкивался, но теперь буду знать что делать в случае чего. Спс.
19 Авг 2009 в 10:40
Та же проблема на сайте, что указал тут в подписи. Воспользовался вашим методом. Прошла неделя, пока не индексит по прежнему. Ждём..
20 Авг 2009 в 19:15
У меня, после того, как я исправил описанный выше вордпрессовский косяк с пермалинками, Яндекс пустил блог в выдачу уже при следующем апе.