AddDefaultCharset UTF-8
RewriteEngine on
RewriteBase /
RewriteRule ^/?$ index.php?controller=catalog&action=list [NC,QSA]
RewriteRule ^([a-z]+)/?([a-z]+)?/?$ index.php?controller=$1&action=$2 [NC,QSA]
в корне сайта есть папка dir, при обращении к http://test.ru/dir он не открывает каталог, он присваевает переменной $_GET['controller'] значение dir, но строка запроса меняется на http://test.ru/dir/?controller=dir&action=
флаг QSA убирал, ничего не изменяется, почему он вообще решает изменить строку запроса и вывести в неё эти переменные? причём если запрос вида http://test.ru/dir/ т.е. слеш на конце - такого не происходит.