1 - Прорабатываем "канонический" урл, т.е. тот, который будет впоследствии верным. Самый простой вариант - просто убрать запятые, возможно заменить на точки.
2 - При запросе из базы приводить командой REPLACE текущие урлы к "каноническим". Входящие урлы запроса страниц преобразовывать так же для правильного поиска. Можно конечно сразу заменить урлы в базе. Но я бы не стал торопиться. Не забываем, что в Яше уже сидят урлы с "?" вместо ","
3 - После того, как выяснили, какая страница запрашивается - проверяем реальный урл. Если он не "канонический" - редиректим 301 на "канонический". Потерь позиций и документов в этом случае не будет. Если Урл запрашиваемой страницы равен "каноническому" - все ок, выдаем страницу.
Просто нет смысла писать обработчик на каждый урл - преобразуйте все по маске. А 301 редирект переведет все урлы под одно правило и для Г и для Я без потерь страниц.
Вот скажем так выдержка Г-кода из одного ИМ. Там урлы страниц формируются транслитерализацией названия товара. Названия корректируются постоянно, но ничего не выпадает. Правда там соответствие по айди.
Mad_Man: VHS, фигню советуете, товагищ. Не нужно городить костыли пачками. Нужно вправить лишь экранирование символов на сайте.
Ой ли?
Ребят, вообщем Яндекс дал четко понять, что урлы 14,9x100 видит как -14?9x100 -35x100,8 видит как -35x100?8 -49,6x49,6 видит как -49?6&6x49
Что можно прописать в .htaccess чтобы для раздела laminat/ действовали правила редиректа с -14?9x100 на -14-9x100 -35x100?8 на -35x100-8 -49?6&6x49 на -49-6x49-6
или даже так -14,9x100 на -14-9x100 -35x100,8 на -35x100-8 -49,6&49,6 на -49-6x49-6
то же самое описал и я. Только не в htaccess, а в коде. И не 6000 правил писать, а один временный костыль.
Смысл всех махинаций - плавная смена url, без потерь в поисковиках и потерянных всвязи с этим страниц. Решение за тобой.
С символами играй как знаешь. Смысл - отдача урл вне зависимости от преобразований.
После чего урлы на страницах меняешь на нормальные (при выводе заменяешь символы) и сразу редиректишь на правильный адрес с старых страниц. Не меняешь в базе урлы для того, чтобы автоматом редиректить на правильные страницы. Хотя можно и заменить по базе сразу, но что-то мне подсказывает что не стоит этого делать.
Когда урлы с кривыми символами переместяться на правильные - заменишь в базе и все.
stranica.html имеет точку?
На точки самый простой, но боюсь теперь на них менять.
---------- Post added 30-10-2014 at 13:23 ----------
Нет их нет, они 404 для Яши. Всего урлов с запятыми 2100, 1900 урлов уже выпали, так как отдали яндексу 404.
Если они один раз отдали 404 - это не значит что они уже выпали.
И не забудь про ссылки на эти страницы. Невыпавшие ведь содержат на них ссылки, которые Яша обязан обойти?
Еще раз поясню.
1 - Прорабатываем "канонический" урл, т.е. тот, который будет впоследствии верным. Самый простой вариант - просто убрать запятые, возможно заменить на точки.
2 - При запросе из базы приводить командой REPLACE текущие урлы к "каноническим". Входящие урлы запроса страниц преобразовывать так же для правильного поиска. Можно конечно сразу заменить урлы в базе. Но я бы не стал торопиться. Не забываем, что в Яше уже сидят урлы с "?" вместо ","
3 - После того, как выяснили, какая страница запрашивается - проверяем реальный урл. Если он не "канонический" - редиректим 301 на "канонический". Потерь позиций и документов в этом случае не будет. Если Урл запрашиваемой страницы равен "каноническому" - все ок, выдаем страницу.
Просто нет смысла писать обработчик на каждый урл - преобразуйте все по маске. А 301 редирект переведет все урлы под одно правило и для Г и для Я без потерь страниц.
Вот скажем так выдержка Г-кода из одного ИМ. Там урлы страниц формируются транслитерализацией названия товара. Названия корректируются постоянно, но ничего не выпадает. Правда там соответствие по айди.
$rightUrl = url2product($unit['cat_id'],$site['category']).$id."-".str2url($unit['name']).".html";
if($_REQUEST['str'] != $rightUrl){
header("HTTP/1.1 301 Moved Permanently");
header("location: /".$rightUrl);
exit();
}
VHS, фигню советуете, товагищ. Не нужно городить костыли пачками. Нужно вправить лишь экранирование символов на сайте.
Ой ли?
14,9x100 видит как -14?9x100
-35x100,8 видит как -35x100?8
-49,6x49,6 видит как -49?6&6x49
Что можно прописать в .htaccess чтобы для раздела laminat/ действовали правила
редиректа с
-14?9x100 на -14-9x100
-35x100?8 на -35x100-8
-49?6&6x49 на -49-6x49-6
или даже так
-14,9x100 на -14-9x100
-35x100,8 на -35x100-8
-49,6&49,6 на -49-6x49-6
то же самое описал и я. Только не в htaccess, а в коде. И не 6000 правил писать, а один временный костыль.
Смысл всех махинаций - плавная смена url, без потерь в поисковиках и потерянных всвязи с этим страниц. Решение за тобой.
Что то не понял смысл наворота. Для робота (и юзера) урлы страниц все равно поменяются. Документ будет доступен, короче, по новому адресу.
В выборке страницы по урлу запроси вот этот урл
а потом через конструкцию
WHERE REPLACE( `url` , ',', '' ) = REPLACE( $url , '?', '' )
С символами играй как знаешь. Смысл - отдача урл вне зависимости от преобразований.
После чего урлы на страницах меняешь на нормальные (при выводе заменяешь символы) и сразу редиректишь на правильный адрес с старых страниц. Не меняешь в базе урлы для того, чтобы автоматом редиректить на правильные страницы. Хотя можно и заменить по базе сразу, но что-то мне подсказывает что не стоит этого делать.
Когда урлы с кривыми символами переместяться на правильные - заменишь в базе и все.
Урлы товаров менять не очень хочется.
Не меняй.
WHERE REPLACE( `url` , ',', '' ) = "урл без запятых"
На страницах выводишь урлы без запятых
Перед выводом страниц проверяешь урлы на наличие запятых - есть запятая, редиректишь 301 на нее же, но без запятой.
Классически решается выводом в часть урл айдишника.
Постраничный редирект на 6000? Не лучший вариант.
В mysql есть функция replace
---------- Добавлено 30.10.2014 в 02:02 ----------
Вангуете структуру БД по скриншоту товара?
Вещий сон увидел, там про символы в урл и преобразованиях хитрóвымученных символов.
Создаешь файл hjfdJGTG.html (Регистр крайне важен!!!) на рабочем столе.
Нажимаешь правой кнопкой - редактировать в блокноте.
Вылаживаешь в него свой хтмл.
Сохраняешь
Открываешь файл в браузере. В твоем персональном интернете появляется твой сайт.
Это бесплатно.
На картинке из старт-поста очень нравится третья строчка и четвертая буква справа в урле. С огромной долей вероятности она будет преобразована к "?"
Не воспроизводится что-то.
Проверьте - а ТОП полностью меняется или только отдельные сайты вылетают?