Well the problem with your current .htaccess
is that its going into a loop causing the internal server error.
To make what you wish work you need to capture the URL at the request and redirect it, and then internally redirect it back:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# Redirect /article.php?id=bryan to /article/bryan
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+article\.php\?id=([^\s]+) [NC]
RewriteRule ^ /article/%1? [R=302,L]
# Internally forward /article/bryan to /article.php?id=bryan
RewriteRule ^article/([^/]+)/?$ /article.php?id=$1 [L,NC]
However there is no easy way to convert %20
into spaces or -
you will have to work that out from your system.