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

Главные вкладки

Аватар пользователя AntonD AntonD 6 февраля 2013 в 15:08

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

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

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

Комментарии

Аватар пользователя multpix multpix 6 февраля 2013 в 22:19

"AntonD" wrote:
Особенно актуально для SEO.

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

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

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

Аватар пользователя AntonD AntonD 6 февраля 2013 в 22:30

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

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

Аватар пользователя multpix multpix 6 февраля 2013 в 23:04

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

Аватар пользователя AntonD AntonD 6 февраля 2013 в 23:33

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

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

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

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

Аватар пользователя multpix multpix 6 февраля 2013 в 23:37

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

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

Аватар пользователя vitaboss vitaboss 7 февраля 2013 в 0:11

"AntonD" wrote:
(globalredirect, pathauto, transliteration)

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

[РЕШЕНО]

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

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

Кто не любит? Smile

Аватар пользователя multpix multpix 7 февраля 2013 в 0:21

"vitaboss" wrote:
[РЕШЕНО]

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

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

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

Аватар пользователя AntonD AntonD 7 февраля 2013 в 11:56

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

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

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

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

Аватар пользователя vitaboss vitaboss 7 февраля 2013 в 21:50

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

Зачем изворачиваться? Чтоб проблем не было, нужно сайт на 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 7 февраля 2013 в 23:06

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

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

Аватар пользователя vitaboss vitaboss 7 февраля 2013 в 23:39

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

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

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

Аватар пользователя AntonD AntonD 7 февраля 2013 в 23:57

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

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

Аватар пользователя vitaboss vitaboss 8 февраля 2013 в 0:12

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

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

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

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

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

Аватар пользователя multpix multpix 8 февраля 2013 в 0:44

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

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

Аватар пользователя AntonD AntonD 8 февраля 2013 в 11:37

"vitaboss" wrote:
Если вы косякнете, то они это не расхлебают. Потеряют заказ.

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

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

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

Аватар пользователя multpix multpix 8 февраля 2013 в 13:02

"AntonD" wrote:

пилять!!

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

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

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

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

<tag>HUMOR</tag>

Аватар пользователя AntonD AntonD 8 февраля 2013 в 14:20

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

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

Аватар пользователя vitaboss vitaboss 8 февраля 2013 в 14:39

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

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

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

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

Аватар пользователя AntonD AntonD 8 февраля 2013 в 15:05

"vitaboss" wrote:
Отмазка каторую можно применить:

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

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

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