kir_pich

kir_pich
Рейтинг
124
Регистрация
09.07.2006
Должность
bitrix разработчик
jkm:
Откуда это взяли?
Я же совсем другой шаблон предлагал.

В итоге заработало в таком виде

RewriteRule ^gde.?kupit.?saiding.?keyword.(?<!gde-kupit-saiding_keyword/) http://www.адрес_сайта/pred/gde-kupit-saiding_keyword/ [R=301,L]

в других видах либо зацикливалось, либо ничего не происходило.


jkm Спасибо большое:)

PS-пойду с этим разбираться

RewriteCond "\

keyword = /pred/gde-kupit-saiding_keyword/ \
key2 = /blabla-url-for-key2/ \
key3 = /blabla-url-for-key3/ \
key4 = /blabla-url-for-key4/ \
@%{THE_REQUEST}" ^(?:(\S++)\s+=\s+(\S+)\s+([^@]*+@\S++\s(?!\2)\S+\1)?)++(?(3)|(?!))
RewriteRule ^ %2 [R=301,L]


---------- Добавлено 25.12.2015 в 19:00 ----------

А в key2 = /blabla-url-for-key2/ \ В такой формулировке писать:

gde-kupit-saiding\/centralnii-okrug = /gde-kupit-saiding/centralnii-okrug/ \

или по другому можно проще сделать?

Данный вопрос возник в связи с тем что в данном разделе встречается несколько раз centralnii-okrug.

И такой вопрос, насколько фигово для сайта/сервака наличии такой ереси в количестве 700+ строк? 😂😂😂

Да, "рарработчек" старался когда писал скрипт😂😡🤪

jkm:
Предложенный вариант проверяет наличие keyword, который не обрамлен _ и /.
Если нужна более строгая проверка, то как-то так

RewriteRule ^pred/gde.?kupit.?saiding.?keyword.(?<!_keyword/) http://ввв.мой-сайт.ru/pred/gde-kupit-saiding_keyword/ [R=301,L]

---------- Добавлено 23.12.2015 в 16:50 ----------

Шаблон keyword.(?<!_keyword/) ловит большую часть ошибочных урл
https://regex101.com/r/yY8rM8/1
---------- Добавлено 23.12.2015 в 16:56 ----------
Или даже так keyword.(?<!gde-kupit-saiding_keyword/)
https://regex101.com/r/yY8rM8/2

Приветствую, jkm.

вариация

- Отлавливает шикарно, но, итог отлова - зацикливание и Неверное перенаправление на странице

птопал дальше разбираться.

jkm:
Т.е. правильно
_keyword/

Неправильно
_keyword-
_keyword_
gkeyword/

Тогда надо примерно так

RewriteRule keyword.(?<!_keyword/) http://ввв.мой-сайт.ru/pred/gde-kupit-saiding_keyword/ [R=301,L]

правильно только keyword, а всё остальное не правильно.

true

/gde-kupit-saiding_keyword/

false

/keyword/

/saiding_keyword/

/gde-kupit-saiding-keyword-asd/

/gde-kupit-saiding_keyword-asd/

/gde-kupit-saiding_keyword_asd/

/gde-kupit-saiding-keyword-asd/

/gde-kupit-saiding-keyword-asd/

/gde-kupit-saiding-keyword_asd/

/gdekupitsaidingkeyword/

/gdekupitsaidingkeywordasd/

Ps-да, скрипт настолько корявый к сожалению, и единственное рещение чтобы не переписывать скрипт, настроить редиректы на правильные страницы.

LEOnidUKG:
а просто: $_GET['catid'] не получается?

тупанул🤪

Спасибо

ап чтоли🙅

gormarket:
kir_pich, для начала поменяйте местами параметры при вызове функции strpos, иначе Вы всегда будете получать из нее false

И для explode тоже поменяйте местами параметры.

Спасибо большое, всё работает.

Counselor:
Код:
а = б
если а == б, то писать "пусто", иначе писать "текст"
и что дальше-то?

/ru/forum/comment/9373289

Counselor:
Ничего не понял. Но чувствую, что проблема серьезная ☝

А понимать то толком ничего и не нужно! Для начало желательно посмотреть на код прежде чем оставлять бсполезные сообщения!

если пользователь находится на урл 1 ему показывается инфа, если на 2(к примеру) ему ничего не показывается.

всё равно не хочет работать, а именно, всегда выводит 1, даже там где должно быть 0!

попробывал по другому сформулировать

<?php

$this_uri = 'id_cat=';

if (strpos($this_uri, basename($_SERVER['REQUEST_URI'])) !== false) $this_uri = reset(explode(basename($_SERVER['REQUEST_URI']), $this_uri));

if ($this_uri == "id_cat=") {

print "1";

}

else {

print "0";

}

?>

но всё равно тот же результат (((

Всего: 148