Добрый день, У меня стоит задача при переходе на детальную страницу, необходимо чтобы открывалась страница /detail.php Для этого я прописал в детальной строке инфоблока : #SITE_DIR#/#SECTION_CODE_PATH#/#ELEMENT_CODE#/?detail=1 ибо при клике по элементу ссылка проверялась рег. выражением, в случае наличии параметра "detail=1" открывалась указанная страница /detail.php
В обработке: Условие: #^(.*)(\?detail=1)# Компонент: Файл: /detail.php Правило: SECTION_CODE=$1&ELEMENT_CODE=$2
Странно то что на примере проверяемой ссылки /russia/arkhangelskaya-oblast/tsentr-goroda/?detail=1 на странице online рег. выр. www.bl2.ru/programing/regular.htmlссылка отлично проверяется
А если ссылка динамическая и она может выглядеть вот так: /russia/arkhangelskaya-oblast/arhangelsk/tsentr-goroda/?detail=1 /russia/arkhangelskaya-oblast//tsentr-goroda/?detail=1 /russia/tsentr-goroda/?detail=1
Я так понял обработка сработает только для такого вида? /russia/tsentr-goroda/?detail=1 Поэтому я и пытался проверить всю ссылку (.*), до ?detail=1
Вот так работает, открывается \detail.php , условие что привели выше #^/([\w\d-]+)/([\w\d-]+)/\?detail=1# но только по ссылке вида: /ssha/los-angeles/?detail=1 Я так понимаю необходимо проверять каждую часть кода между /...../
Василий Крохоборов пишет: Я не понимаю, что вы хотите. Делайте редирект как вам нужно, вы же ищете способ проверить, есть ли в текущем запросе строка detail=1
Эта проверка делается ради того что-бы ЧПУ был максимально понятен т.е оставался url: www.сайт.ru/russia/arkhangelskaya-oblast/arhangelsk/tsentr-goroda/?detail=1 и я на детальной как раз with preg_match я выдергиваю необходимые коды для работы компонентов из url, в этом то и проблемка что ссылка меняется и проверить её трудно, если не возможно.
Тогда останется только прописать все 4-ре правила обработки, но хотелось бы всего одно
1 russia 2 arkhangelskaya-oblast 3 arhangelsk 4 tsentr-goroda
если так, то еще раз предложу использовать stripos для поиска "?detail=1" (там выбирайте сами, можно одно слово detail, если больше в строке не может такое появится, либо detail= (вряд ли у вас будет что-то кроме единицы). После того, как вы убедились, что у вас есть этот параметр, используйте explode с разделителем / Он вам разложет в массив все ваши параметры. Вы зря так уперлись в регулярные выражения. Для простой проверки наличия метки в строке они абсолютно не нужны, только усложняют понимание и замедляют работу.