you might be misunderstanding how mod_rewrite works. if you follow a link to http://www.domain.com/index.php?newsid=5504 (or enter that in the address bar), it checks /index.php against your rewrite rules and finds no match so leaves it alone.
on the other hand, if you go to http://www.domain.com/index/newsid/5505/ it checks /index/newsid/5505/ and finds a match in index/newsid/(.*) and rewrites it to index.php?newsid=5505/
that should work on dreamhost’s servers, but on my own local installation since there is an index.php and the url starts with index/ i have seen it actually run index.php with nothing in $_GET but /index/newsid/5505/ available in $_SERVER somewhere. i’ve seen this done on purpose but usually the .php is included in those cases.
i’d also recommend doing something a little more friendly than index/newsid/5505/ for the url, like news/5505 for example. of course it has to be something that’s not going to collide with any existing urls.
track7 - my dream-hosted site