La idea de htaccess es que sea lo más abstracto posible para que puedas redireccionar a un archivo y en ese archivo haces las verificaciones. Si haces muchas redirecciones en el htaccess, cuando hagas algún cambio a alguna página web, te vas a encontrar con muchos errores y dolores de cabeza. Te recomiendo que el htaccess solo coloques algo así
Código Apache:
Ver original#% -> puedes quitar esta línea, es para evitar un error con el highlight
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)/?(.*)?$ index.php?pagina=$1&apartado=$2 [NC,L]
RewriteRule ^.*$ pages/404.php [NC,L]
Las condiciones evalúan si existe o no el directorio y los archivos, si no existen entonces brinca el primer rewriteRule y pasa al segundo para mostrar una página de error. Si existe el archivo, entonces pasa al primer rewriteRule.