Premetto che mi sono avvicinato da poco a questo argomento, ma a me queste due regole
sembrano differire solo per la seconda parte, cioè l'indirizzo con il quale vuoi sostituire l'indirizzo che corrisponde a questo pattern:QUESTO FUNZIONA
RewriteRule ([^/]+).html ./categoria.php?id_cat_url=$1 [L,QSA]
NON MI STAMPA A VIDEO IL REQUEST DI ID_SOTCAT ???
RewriteRule ([^/]+).html ./sottocategoria.php?id_sotcat=$1 [L,QSA]
Perciò essendo scritta prima la regola([^/]+).html
e avendo questa regola la flag [L], che indica di fermarsi se l'indirizzo trovato nell'url corrisponde alla prima parte di questa regola (cioè ([^/]+).html ) perchè può avvenire la sostituzione, ecco che l'indirizzo viene sempre sostituito con ./categoria.php?id_cat_url=$1, senza mai procedere a verificare la regola sotto..RewriteRule ([^/]+).html ./categoria.php?id_cat_url=$1 [L,QSA]
Quindi potresti provare a specificare meglio la forma dei due pattern, in modo che siano diversi tra loro

Rispondi quotando