Александр Маджугин, а в итоге при запросе /catalog/ какой результат ожидаете?
Правило будет работать если /catalog/all/ существующая папка со своим index.html или index.php.
Если /catalog/all/ не является физически существующей папкой, то запрос уходит в /bitrix/urlrewrite.php. А там уже маршрутизацию нужно настраивать средствами самого битрикса а не .htaccess
dodo512, именно это я и ожидаю.
Но в /bitrix/urlrewrite.php, уходит /catalog/ в ваших терминах.
Если объяснять вообще на пальцах то я ожидаю, что при /catalog/ в URL, в REQUEST_URI в массиве $_SERVER будет значение "/catalog/all/", а если в параметры я добавлю R=301 то произойдет редирект на /catalog/all/
Александр Маджугин, в переменной $_SERVER['REQUEST_URI'] скрипт всегда получает адрес в первоначальном виде, а не результат преобразований RewriteRule.
Если бы в REQUEST_URI оставался результат последнего преобразования RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
то при любом запросе в REQUEST_URI всегда было бы /bitrix/urlrewrite.php и ЧПУ не работал бы.
Результат работы предпоследнего преобразования можно поискать в $_SERVER['REDIRECT_URL']. Предпоследним должно срабатывать как раз правило RewriteRule ^(.*)$ /catalog/all/ [NC,L]
Так что рулить маршрутами нужно средствами самого битрикса.
Если добавить R=301, то должен быть 301-й редирект на /catalog/all/. Если этого не происходит, то перед проверкой нужно сбросить кеш браузера.