Options FollowSymLinks
RewriteEngine On

RewriteRule ^([a-zA-Z0-9\-\_\.]+)$ read.php?desc=$1 [L]
RewriteRule ^([a-zA-Z0-9\-\_\.]+)/([a-zA-Z0-9]+)$ read.php?desc=$1&sub=$2 [L]

Po przejściu przez .htaccess $_GET['desc'] ma wartość 'read.php' :O, a $_GET['sub'] zawsze jest puste :O. Co jest nie tak?