Я думаю что каждый более-менее продвинутый русскоязычный блогер использующий WordPress знаком с плагином RusToLat.
Нужен он для автоматического преобразования урлов из кириллицы в транслит. Кто-то считает что плагин архиполезный, кто-то наоборот, считает что он нафиг не нужен. На самом деле ПС отлично понимают кириллические урлы, так что единственная проблема, на первый взгляд, это ужасный вид урл-кодированных ссылок, что вполне можно пережить. Так что до поры до времени я забивал на этот плагин. До поры до времени, ага, пока не начал добавлять такие сайты в sape. Я уже писал про заработок на своем сайте на sape . И тут меня ждало жестокое разочарование. Оказалось, что запрос, который формирует сапа для проверки страницы на проиндексированность яндексом, отрабатывается криво в случае с урлами вида «длинное-предлинное-название-раздела/еще-более-длинное-название-статьи». Происходит так, скорее всего, из-за того что запрос оказывается слишком длинным в результате урл-кодирования. В общем получается что проиндексированные страницы в сапе определяются как непроиндексированные. Так что, граждане начинающие саперы, не повторяйте моих ошибок, ставьте RusToLat до добавления контента на сайт Вы можете посмотреть какие еще плагины необходимы для корректной работы вашего блога.
Так вот, о чем это я… Значит решил я заюзать этот плагин на некоторых своих сайтах, на этом блоге в том числе. Вскоре после начала использования обнаружил несколько подводных граблей, а именно:
- У старых постов урлы не меняются, надо менять вручную. Так что если на сайте уже туча постов, то придется или оставить эту затею или писать скрипт автоматизирующий процесс.
- Как выяснилось, старые русские урлы остаются доступными даже после перевода на транслит.
И если первая проблема меня не особо напрягла, так как записей пришлось переправлять не так уж и много, то со второй пришлось повозиться.
Засада заключается в том, что все эти страницы с русскими урлами уже висят в индексе яши и гугла. А что сделают поисковики с новыми урлами после того как на них наткнутся? Правильно, они приклеят их нафиг к старым и будут правы, ибо 100% дублирование контента.
Стал думать как эту проблему забороть. Варианта придумалось только два: поставить на каждую старую страницу редирект 301 или же просто сделать недоступными старые урлы, после чего они должны будут выпасть из индекса освободив место новым. Выбрал второй способ как более простой, просто добавил в htaccess строку
RedirectMatch /2015/0[6-8]/[0-9][0-9]/[^a-z0-9].*/$ http://blogfreo.ru/404
То есть все мои старые посты у которых часть урла соответствующая названию начинается не с латинской буквы и не с цифры редиректятся на несуществующий blogfreo.ru/404. Может быть решение и корявое, но сработать должно