for one, the rewrite rule:
RewriteRule ^newsarticle-([0-9]+)\.php$ newsarticle.php?zNews?id=$1
does not apply to the news.php page, it applies to the newsarticle.php page, so a link to the news.php page would not work.
only a link to the newsarticle.php page would trigger the re write rule.
it looks to me like you are trying to pass the URL in as:
newsarticle-2.php
and have that read as:
newsarticle.php?zNews?id=2
for two, the format of your rewrite url is wrong
newsarticle.php?zNews?id=1 is not a valid URL variable, i dont know what is a valid URL variable for your site, but there should not be more than 1 ? in a url variable.