Конкретно на коде выше я смотрел и подобных проблем небыло. Да и по идее регулярка должна отработать как нужно. Проверяйте свой код.
$str = ':name=первая && (:id>40 && :sect=content)'; $param = array(); preg_match_all('/:([\w_]+)\s*([<>=]{1,2})\s*(["\'].*?["\']|[^\s()]+)/', $str, $out); for($i=0; $i<count($out[0]); $i++){ $key = $out[1][$i]; $sign = $out[2][$i]; $val = $out[3][$i]; $str = str_replace($out[0][$i], $key.(($sign == '=') ? ' LIKE' : $sign).' ?', $str); $param[] = $val; } echo $str; print_r($param);
Грубый такой вариант. Если вам нужно разобрать полностью выражение пишите свой парсер с блэкджеком и девушками.
^test/.+?_(\d+)/.+?_(\d+)/$
и все там с тире должно работать. Кеш браузера сбросьте.
Вам нужно проверить уникальность строк? Group by не подходит?
Зависит от браузера, но подумайте, что будет если вы вставите ссылку с кириллицей на сайте который работает в cp1251?.. Так что для вас же лучше, чтобы не канонические символы были закодированы.
Зацикливания редиректа. Проверьте чтобы в htaccess небыло обратного редиректа что вызвало бы бесконечный цикл.
А вы об этом напарнику говорили? Возможно он одумается и раскается. Хотя может быть и наоборот - зарегает новый домен, а с нынешнего поставит редирект.
Так и пишите чего не поняли. Отыщите свою тему и пишите там.
Вам же вроде один раз ответили, не?..
spiderbuber, дело не в реврайтах а в вашей кмс. Спрашивайте у конторы откуда брали скрипт, либо разберите систему чпу. Скорее всего там где-то лишняя папка вытаскивается.