РЕДАКТИРОВАНИЕ:
domain.com / dir / json не перенаправляет, потому что не соответствует регулярному выражению.
Причина, по которой / dir / json не перенаправляет, заключается в том, что js следует за dir /, и ваше регулярное выражение совпадает только тогда, когда за dir / не следует или стиль или js. Я думаю, что негативные взгляды - неправильный подход. Я думаю, что вы на самом деле хотите что-то вроде:
RewriteCond %{REQUEST_URI} !^/dir/(js|style)(/.*)?$
RewriteRule ^dir/(.*)$ http://www.domain.com/single.php?uri=$1 [LQSA]
Это в основном означает, что если URL не оканчивается на / js или / style (опционально с дополнительными компонентами пути под этими каталогами), затем применяет правило перенаправления.