Как сделать 301 редирект с кириллических url на латинские?

Аватар пользователя AntonD

На сайте почти все ссылки на кириллице. Появилась необходимость заменить их на латиницу, как это сделать выяснил. Но необходимо что бы со старых кириллических ссылок шел 301 редирект на новые латинские. Вручную прописывать в .htaccess не вариант, слишком много страниц.
Как это осуществить? Есть ли такой модуль или надо что то хитро настроить в имеющихся? (globalredirect, pathauto, transliteration)

Сейчас всё работает так:
Заменив url любой страницы с кириллицы на латиницу, срабатывает редирект со страницы вида site.ru/node/111 на site.ru/stranica, но если попробовать ввести старый кириллический url вида site.ru/страница то открывается пустая страница (даже не 404)

Кто ни будь сталкивался с таким?

Модули и темы:
Ключевые слова:
Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя AntonD
AntonD 4 года назад

UP! Неужели ни кто не решал подобную проблему? Особенно актуально для SEO.

Аватар пользователя multpix
multpix 4 года назад
AntonD написал:
Особенно актуально для SEO.

сеорастов тут не любят.

вряд-ли кто специально делал себе подобный трабл, чтоб потом доблестно его решить.

продумай грамотно ситуацию, сформулируй задачу и оформляй реализацию своим модулем.

Аватар пользователя AntonD
AntonD 4 года назад
multpix написал:
сеорастов тут не любят.
вряд-ли кто специально делал себе подобный трабл, чтоб потом доблестно его решить.
продумай грамотно ситуацию, сформулируй задачу и оформляй реализацию своим модулем.

Совет лично для меня бесполезный, так как не на таком высоком уровне мои знания. Но всё равно спасибо за внимание к вопросу.

Аватар пользователя multpix
multpix 4 года назад

ты можешь из базы (url_alias) выдернуть весь список кириллических алиасов
машинное имя->псевдоним
потом вкл. транслитерацию и опять выдернуть весь список но уже транслит алиас
поколдовав с двумя этими таблицами получить список:
/кирилл_псевдоним /транслит_псевдоним
добавить в начало каждой строки Redirect 301
и в .htaccess сие пока пауки не переиндексируют - эт относительно недолго.
де-то так.

Аватар пользователя AntonD
AntonD 4 года назад
AntonD написал:
Совет лично для меня бесполезный, так как не на таком высоком уровне мои знания. Но всё равно спасибо за внимание к вопросу.

- Вот это я как то слабо написал видимо)))

multpix написал:
ты можешь из базы (url_alias) выдернуть весь список кириллических алиасов
машинное имя->псевдоним
потом вкл. транслитерацию и опять выдернуть весь список но уже транслит алиас
поколдовав с двумя этими таблицами получить список:
/кирилл_псевдоним /транслит_псевдоним
добавить в начало каждой строки Redirect 301
и в .htaccess сие пока пауки не переиндексируют - эт относительно недолго.
де-то так.

Значит для решения вопроса: Надо мне сначала php вспоминать/учить, потом вникнуть в API Drupal и научится писать модули под него. Попутно придется английский поднимать. Ну, может это всё и осуществимо, вот только мне почему то страшно стало и одновременно стыдно, от того что всё это не умею и уметь всё это очень лень.
Но еще раз спасибо.

Аватар пользователя multpix
multpix 4 года назад
AntonD написал:
Значит для решения вопроса: Надо мне сначала php вспоминать/учить, потом вникнуть в API Drupal и научится писать модули под него. Попутно придется английский поднимать.

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

Аватар пользователя vitaboss
vitaboss 4 года назад
AntonD написал:
(globalredirect, pathauto, transliteration)

Добавляйте к этому списку http://drupal.org/project/redirect и будет вам счастье.
Модуль сохраняет в каждой сущности историю изменения урлов, есть настройки сколько хранить старый урл и т.д.
По всем старым урлам если пройтись, то 301 редирект работает. А кирилические ссылки здесь вообще не причем должен работать с любыми, они ведь тоже ссылки и имеют право на жизнь.

[РЕШЕНО]

Рекомендовано дополнительно использовать и этот модуль http://drupal.org/project/pathologic

multpix написал:
сеорастов тут не любят.

Кто не любит? :)

Аватар пользователя multpix
multpix 4 года назад
vitaboss написал:
[РЕШЕНО]

век живи, век учись))) - се я себе.

а их никто не любит, они сам себя не любят

две большие разницы - человек изучающий семантику, w3c стандарты... и человек считающий seo разновидностью шаманизма
вот последних и не любят)))

Аватар пользователя vitaboss
vitaboss 4 года назад
multpix написал:
а их никто не любит, они сам себя не любят

Нет. Не так. Они друг друга не любят.

Аватар пользователя vitaboss
vitaboss 4 года назад

Облом походу для автора, у него 6-ка. А модуль вышел только на семерку...

Аватар пользователя AntonD
AntonD 4 года назад
vitaboss написал:
Облом походу для автора, у него 6-ка. А модуль вышел только на семерку...

и в правду облом, как раз подобную штуку мне и надо было.

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

спасибо. это уже обнадеживает. если решение вопроса с меня не снимут, буду пилить.

Аватар пользователя vitaboss
vitaboss 4 года назад
AntonD написал:
спасибо. это уже обнадеживает. если решение вопроса с меня не снимут, буду пилить.

Зачем изворачиваться? Чтоб проблем не было, нужно сайт на 7-ке.

Яндекс:
Кириллические доменные имена и адреса страниц индексируются нашим роботом наравне с остальными, но есть ряд случаев, когда необходимо использовать их в cконвертированном виде, так как этого могут требовать определенные стандарты:

Использование кириллицы запрещено в файлах robots.txt, http-заголовках сервера и файлах sitemap.

Для указания имен доменов используется punycode. Адреса страниц записываются в кодировке, соответствующей кодировке текущей структуры сайта.

Пример файла robots.txt:

#Неверно:
User-agent: Yandex
Disallow: /корзина
Host: интернет-магазин.рф

#Верно:
User-agent: Yandex
Disallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0
Host: xn----8sbalhasbh9ahbi6a2ae.xn--p1ai
Рекомендуется использовать одинаковую кодировку для страниц сайта и кириллических адресов в его структуре, так как встретив ссылку href="/корзина" на странице с кодировкой, например, UTF-8 робот сохранит ее именно в этой кодировке, а значит она должна быть доступна по адресу "/%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0".

Аватар пользователя AntonD
AntonD 4 года назад
vitaboss написал:
Зачем изворачиваться? Чтоб проблем не было, нужно сайт на 7-ке.

Что на 6-ке, что на 7-ке одинаково - я имею в виду что до заполнения сайта не была включена транслитерация. А удалять синонимы и делать массовое обновления не вариант, так как из поиска всё вылетит.
По поводу отношения поисковиков к кириллице я в курсе. Большинство считает что разницы почти нет.
Но меня попросили перевести УРЛы с кириллицы на латиницу в SEO компании, которая продвигает сделанный мной сайт (делал не себе). Я так понимаю им это надо для удобства закупки ссылок (адрес на латинице не такой длинный получается), хотя после последнего письма, в котором было написано что то вроде: "если останется на кириллице, дальнейшее продвижение не возможно", начинаю задумываться о профессионализме этих людей.

Аватар пользователя vitaboss
vitaboss 4 года назад

Как вариант, берем из вебмастера или из синонимов в друпале список всех проиндексированных урлов, в любом сервисе транслита переводим их все одной кнопкой. Включаем в друпале модуль транслитерации, переводим все урлы в транслит. Затем либо на хостинге либо в .htaccess делаем редирект. При этом в базу мы не лазим.

AntonD написал:
"если останется на кириллице, дальнейшее продвижение не возможно"

По видимому у них нет лицензии на русскоязычный сео-бубен.

Аватар пользователя AntonD
AntonD 4 года назад
vitaboss написал:
Как вариант, берем из вебмастера или из синонимов в друпале список всех проиндексированных урлов, в любом сервисе транслита переводим их все одной кнопкой. Включаем в друпале модуль транслитерации, переводим все урлы в транслит. Затем либо на хостинге либо в .htaccess делаем редирект. При этом в базу мы не лазим.

Интересный вариант) Одно не могу додумать - на сайте 99% нод это товары (около 2000), как в .htaccess прописать редирект каждому URL? Вручную?)))

Аватар пользователя vitaboss
vitaboss 4 года назад
vitaboss написал:
в любом сервисе транслита переводим их все одной кнопкой. Включаем в друпале модуль транслитерации, переводим все урлы в транслит.

Только нужно, чтобы правила совпадали, ну типа ya=я и там и там.

AntonD написал:
как в .htaccess прописать редирект каждому URL? Вручную?)))

Тепепь перейдем к самому сложному моменту, когда вам надо редиректить массу URL-ов, например после смены вашей CMS. Тут сразу возникает ряд проблем. Во-первых, внесение всех изменившихся адресов в .htaccess файл займет очень много времени, да и само по себе занятие малоприятное. Во-вторых, слишком много записей в .htaccess файле будут тормозить Apache сервера. И в третьих, при внесении такого количества информации высока вероятность, что вы где то ошибетесь. По этому, самый лучший выход, это нанять програмиста который вам напишет динамический редирект.

А вообще-то, они дебилы, если тупо просят перевести урлы в транслит. Анализ нужно русскоязычных урлов сделать, так чтобы новые транслитные урлы были в конечном варианте. Может где-то слеши нужны? Разделы сайта перестроить может надо, с хлебными крошками как-то это еще увязать надо. Вообще-то это как бы их работа, они за это деньги берут, должны за это отвечать. Если вы косякнете, то они это не расхлебают. Потеряют заказ.

Аватар пользователя multpix
multpix 4 года назад
vitaboss написал:
при внесении такого количества информации высока вероятность, что вы где то ошибетесь

вот для этого и нужно два раза открыть таблицу
url_alias и один раз редактор sublimetext2)))))
если скрипт писать не вариант...

Аватар пользователя AntonD
AntonD 4 года назад
vitaboss написал:
Если вы косякнете, то они это не расхлебают. Потеряют заказ.

Тут мне кажется они просто смогут свалить на меня, то что сайт не поднимается по позициям из-за не сделанных редиректов и дальше брать ежемесячно деньги, них*я почти не делая, как сейчас и происходит.

vitaboss написал:
Вообще-то это как бы их работа, они за это деньги берут, должны за это отвечать.

Вот этот вопрос меня тоже интересует. Когда с ними заключили контракт, они дали мне ТЗ на оптимизацию и доработку сайта под нужды SEO. OK! Вопрос: За что они получают каждый месяц сумму, большую чем я получил за весь сайт? За закупку ссылочной массы? Дак это вобще пи*дец, думаю всем понятно как это "сложно" и "трудоемко".
Видимо не зря выше было сказано "сеорастов тут не любят".
Извините может я и не прав, но как то накипело.

multpix написал:
вот для этого и нужно два раза открыть таблицу
url_alias и один раз редактор sublimetext2)))))
если скрипт писать не вариант...

sublimetext2 нужен потому что умеет с текстом работать как то хитро? я просто им не пользуюсь, но где то видел что он к примеру позволяет вставлять ряд строк внутрь других строк, наподобие как в таблицах вставляешь новые столбцы между другими. Сам пользуюсь Nodepad++ и Aptana 3, первый легкий но не супер удобный, второй удобный но систему загружает.

Аватар пользователя multpix
multpix 4 года назад
AntonD написал:

пилять!!

да хоть мышкой в маздаевский ехсель копипасть,
если тебе так удобно....

только в слух об этом не говори.

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

по новому переосмыслил "манагера" от шнура,
особенно строку "ты работаешь в офисе..."

<tag>HUMOR</tag>

Аватар пользователя AntonD
AntonD 4 года назад
multpix написал:
пронаблюдал как народ распечатывает формы электронных анкет, чтоб ручкой заполнить, а потом сдать.

почему то вспомнил фильм Люди в Черном (первая часть кажется), отрывок где главный герой (Вилл Смит) пришел на письменный тест-экзамен.

Аватар пользователя vitaboss
vitaboss 4 года назад

Отмазка каторую можно применить: Друпал генерит сам урлы кирилические по умолчанию, тебе техзадание ранее не давали по этому поводу, вот ты и сделал на свое усмотрение. Переделка теперь дорого стоить будет.

Вопрос другой в том, что кто сказал тебе ставить пасавто без транслитерации. Были бы сейчас все урлы вида node/*** проблем вообще не было. Эти пути были бы каноническими, а синонимы только сейчас бы появились в том виде в котором нужно.

AntonD написал:
За что они получают каждый месяц сумму, большую чем я получил за весь сайт? За закупку ссылочной массы?

Это они должны отвечать за что деньги получают. Может "рассказывают", что за ссылочную массу, а сами на директ 30% тратят и все, говорят что мол видите посещаемость полезла вверх.

Аватар пользователя AntonD
AntonD 4 года назад
vitaboss написал:
Отмазка каторую можно применить:

ТЗ не было вобще, работа по знакомству, на уровне: "тут на одном сайте такая фишка прикольная реализована, сделай нам так же"

vitaboss написал:
кто сказал тебе ставить пасавто без транслитерации

Никто. В ходе работы над сайтом где то прочитал про этот модуль, поставил для красоты)

vitaboss написал:
а сами на директ 30% тратят

вряд ли, от директа изначально отказались.
А вобще меня всё это достало конечно, сайт давно сдан, работает как часы, расчет я получил. Сейчас я сижу без копейки денег, ищу работу, а тут надо еще постоянно что то "доделывать", да еще и бесплатно. Я понимаю что знакомые, но и о своих проблемах подумать пора, мне жрать нечего, а у них там урлы б*я не в том виде вдруг.