Я думаю, вы ищете что-то вроде этого:
RewriteRule ^articles/([0-9]+)-(.*)\.html$ article.php?id=$1 [L]
RewriteCond $0 !=article.php
RewriteRule .* index.php
Другим решением было бы исключить article.php
с шаблоном второго RewriteRule
:
RewriteRule !^article\.php$ index.php
Но учтите, что это перезапишет любой другой запрос (включая другие существующие файлы). Чтобы победить, вы можете использовать другое условие для второго правила:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php