Как из 46?5&7x20 сделать 46.5x20.7 ?

123 4
J
На сайте с 20.02.2014
Offline
120
jkm
#11
postavkin:
Ничего не случится с фотографиями без запятой? Их это правило не затронет?

Редирект будет только для адресов с запятой.

P
На сайте с 06.01.2009
Offline
592
#12
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

J
На сайте с 20.02.2014
Offline
120
jkm
#13
postavkin:
Не редиректит с 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

По поводу адресов с любым количеством запятых пока в голову приходит только такой костыль


RewriteEngine On
RewriteRule ^(photo[^,]+),(.*\.jpg)$ /$1.$2 [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ \S+,
RewriteRule ^(photo.+\.jpg)$ /$1 [R=301,L]
Mad_Man
На сайте с 10.11.2008
Offline
162
#14

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

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

P
На сайте с 06.01.2009
Offline
592
#15
Mad_Man:


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

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

И опять же, от моего не знания, ну экранировал я символы - каким будет урл для юзеров и ПС, если сейчас урл laminat-45,3x100,7 ?

Есть подраздел, в нем выводятся товары и ссылки в страницы товаров, я просто не смог представить, как я сделаю ссылки (какие они будут ) в товары...Вообщем я много чего не умею. Признаюсь.

Но, я не вижу, какие могут быть дубли, если с урлами уже разобрался, в базе поменял запятые на точку, все ссылки ведут теперь на урлы с точками, для ПС прописал 301 редирект с урлов с запятыми на точки и с урлов различного вида & ? x на нормальные.

А Вы написали только это /ru/forum/comment/13226448

Я вообще не понял, как связано экранирование с тем, что яндекс переворачивает урл. Он запрашивает же не такой laminat-5,5x100, а например такой laminat-5?5x100, что экранировать я не понял, поэтому и решил в корне проблему убрать, тем более сам Яндекс утром написал

Если есть такая возможность, я бы советовал Вам, действительно, использовать URL-адреса страниц без ",".


---------- Post added 30-10-2014 at 19:47 ----------

jkm:
По поводу адресов с любым количеством запятых пока в голову приходит только такой костыль

RewriteEngine On
RewriteRule ^(photo[^,]+),(.*\.jpg)$ /$1.$2 [L]

RewriteRule %{THE_REQUEST} ^[A-Z]{3,7}\ \S+,
RewriteRule ^(photo.+\.jpg)$ /$1 [R=301,L]

Понимаю, я навязчив, простите. А нет варианта проще, остался последний момент - это сделать редирект для фотографий.

Запятых не более двух.

Либо до x, либо после x, либо и до x и после x.

Спасибо. Извините.

J
На сайте с 20.02.2014
Offline
120
jkm
#16

Тогда так


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

P.S. Только сейчас увидел там у меня не RewriteRule %{THE_REQUEST} а RewriteCond %{THE_REQUEST} должно быть

S7
На сайте с 15.08.2010
Offline
79
#17
Mad_Man:
необходимо просто экранировать урлы

Однозначно!!! Желательно на стороне сервера и все вытекающие проблемы - пуфф.. :)

А ловить каждый, неизвестно как, модифицированный/обрезанный url конечно можно,

но хлопотно 😒

VHS
На сайте с 28.09.2007
Offline
142
VHS
#18
Mad_Man:
Прежде чем помогать топикстартеру заниматься байдой и дописывать костыли - загляните в соседний тред персонажа и обратите внимание на кусок лога веб-сервера.

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

Все верно, кроме того что в индексе уже валяется куча страниц. А ты предлагаешь экранировать символы - то есть прописывать все эти страницы на новые адреса с точки зрения ПС. И задача ТС в первую очередь не потерять эти страницы.

S7
На сайте с 15.08.2010
Offline
79
#19
VHS:
задача ТС в первую очередь не потерять эти страницы

Надеюсь количество и порядок выполнения задач ТС сможет определить себе сам ;)

Просто навело на мысль:

Боты теперь ежедневно копят ответы 404 по этим url-ам..

А тут вдруг!! Спустя время по некоторым кривым урлам появляется 200 OK и та-же страница что была и до ломки урла.

Для бота сломаный url стал новым url-ом на ту-же страницу, которая уже есть на его сервере..

Был битый 404 -> он-же стал новый 200 ОК ))

Смысл делать двойную работу?

Может проще для начала:

1. запретить/преобразовать сторонние символы в url для новых страниц?

Другими словами, поправить код в местах, где формируем||получаем url страницы

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

2. пытаться отловить ломаный url и перенаправлять 301-м редиректом "куда-то",

или подставлять "какой-то" - видимо пустая трата времени..

По сути, тоже самое, как просто сформировать и отдать новый url.

Лучше время "отлова" потратить на скармливание ПС новых url страниц..

хотя со временем боты и сами их найдут бегая по ссылкам сайта :).

postavkin:
я не умею сам это делать, поэтому

на всякий случай для картинок с 1-2 запятыми в урле

RewriteRule ^(.+?)(,|%2C)(.+?)\.(jpg|jpag|png|gif)$ /$1.$3.$4 [L,QSA]
RewriteRule ^(.+?)(,|%2C)(.+?)(,|%2C)(.+?)\.(jpg|jpag|png|gif)$ /$1.$3.$5.$6 [L,QSA]

проверил на сервере - работает, с учетом того, что

postavkin:
в базе поменял запятые на точку, все ссылки ведут теперь на урлы с точками
VHS
На сайте с 28.09.2007
Offline
142
VHS
#20

Отлично. Есть страница, по кривому урл. Есть страницы, ссылающиеся на кривой урл. Все это торчит в базе ПС. Убиваем старый урл. Напрочь и везде, выдаем 404 страницу. Засекаем время, через сколько будут проиндексированы новые страницы, расчитан вес ссылок на нее и т.п.

Вариант 2. Подготавливаем костыли для нахождения нужной страницы по кривому урл и 301 редиректу на страницу с новым, правильным урл.

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

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий