postavkin

Рейтинг
601
Регистрация
06.01.2009
jkm:
Вставить после RewriteEngine On

RewriteRule ^(photo.+),(\d+\.jpg)$ /$1.$2 [R=301,L]

Не редиректит с photo/big/marea-10,5x50,3.jpg на photo/big/marea-10.5x50.3.jpg

редиректит на photo/big/marea-10,5x50.3.jpg

ps и не редиректит если в урле фото marea-7,2x15.jpg надо чтобы на marea-7.2x15.jpg

jkm:
Вставить после RewriteEngine On

RewriteRule ^(photo.+),(\d+\.jpg)$ /$1.$2 [R=301,L]

Ничего не случится с фотографиями без запятой? Их это правило не затронет?

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

Спасибо. Я сделал на основе того что мне здесь показали. Просто некоторые урлы придется не редиректить, так как ни одно правило для них не работает. Робот яндекса переставляет как хочет или обрезает урл (это вс касается урлов где есть запятая).

---------- Post added 30-10-2014 at 17:25 ----------

Спецы. Очень прошу теперь помочь с редиректом фотографий в .htaccess.

Думаю всё проще, но мне тоже самому не осилить.

photo/balter/ecowood/big/brown-15x50,5.jpg нужно редиректить на photo/balter/ecowood/big/brown-15x50.5.jpg

photo/balter/ecowood/brown-15x50,5.jpg нужно редиректить на photo/balter/ecowood/brown-15x50.5.jpg

jkm:
А это точно не опечатка? В предыдущей теме в логах урлы были другие

т.е. цифры в урле местами не менялись.

Вот блин, сейчас проверять буду. но мне показалось что закономерность только такая. спасибо

---------- Post added 30-10-2014 at 16:56 ----------

Мдя, жесть, есть отклонения.

есть и такие варианты 31?5x94&9 надо в 31,5x94,9

27?46&73x89 нужно преобразовать в 27.73x89.46

а где то он вообще отрезал урл

mix-balter-2,5x2,5-300x300 получил в логах mix-balter-2

Жесткач. Вариантов стало больше. Ребят спасибо на этом, хоть на часть урлов редирект получится сделать.

ps заметил вот что. есть делители строки любой, такого плана 31?5x94&9 это 3 знака ? & x

Если после ? идет & то числа местами надо переставлять, что мы и сделали.

Если после ? идет x то переставлять не надо, просто меняю запятую на точку.

а это в виде исключения из правил

27?46&73x89 нужно преобразовать в 27.73x89.46
Дикий пионер:
т.е. у вас всегда формат
число?число&числоxчисло?

Да. Задача ещё усложняется, так как строка имеет вид

laminat-balter-5?15&15x5-big-32?5&5x32-lap

и строку надо привести в вид

laminat-balter-5,15x5,15-big-32,5x32,5-lap

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

сделал так


$vgg = explode("-", $tekurl);
$slovvgg = count($vgg);
for ($x=0; $x<$slovvgg; $x++) {
$str = $vgg[$x];
if (preg_match("/^(\\d+)\\?(\\d+)&(\\d+)x(\\d+)\$/",$str,$r)) {
$str="$r[1].$r[2]x$r[4].$r[3]";
$vgg[$x] = $str;
}
}
$rightUrl = implode("-", $vgg); // получили итоговую строку
VHS:
stranica.html имеет точку?

точно. это у меня уже мозг кипит.

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

Что сделаю.

1. все урлы с "," в БД поменяю на "."

2. в обработчик допишу - если запрашиваемый урл товара имеет ",", то меняем "," на "." и делаем 301 редирект на новый урл (с точкой).

ps одно напрягает - можно ли точку поставить в урл? не будет проблем :)

Подтверждаете, что точку можно в урл?

VHS:
Еще раз поясню.
1 - Прорабатываем "канонический" урл, т.е. тот, который будет впоследствии верным. Самый простой вариант - просто убрать запятые, возможно заменить на точки.

На точки самый простой, но боюсь теперь на них менять.

---------- Post added 30-10-2014 at 13:23 ----------

VHS:
Не забываем, что в Яше уже сидят урлы с "?" вместо ","

Нет их нет, они 404 для Яши. Всего урлов с запятыми 2100, 1900 урлов уже выпали, так как отдали яндексу 404.

VHS, я просто не все понял.

Смотрите, в обработчике пропишу правило

если запросили ...-14,9x100 тогда открываем урл ...-14-9x100

если запросили ...-35x100,8 тогда открываем урл ...-35x100-8

если запросили ...-49,6x49,6 тогда открываем урл ...-49-6x49-6

но в БД таблице мне придется заменить урлы 14,9x100 на 14-9x100 и т.д. соответственно. Что происходит.

Юзеры переходят теперь в новые документы. Роботы ПС тоже. Старые урлы ни для Гугла ни для Яндекса уже не работают.

Ребят, вообщем Яндекс дал четко понять, что урлы

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

Всего: 5509