My htaccess file is supposed to rewrite the URLs but it is not doing so, It recognize the re-written URL but do not convert a URL according to the rule.

here is the rules that I wrote in htaccess file and I think it is correct because it shows no error.


Code:
RewriteBase /
RewriteRule ^oriental-id-([0-9+])$ /index.php?page=article&id=$1 [L]
RewriteRule ^heap-([0-9]+)$ /index.php?page=category&id=$1 [L]
the parameter id may be any numeric.

It never show any Server Misconfigured error (Error 500) it means there is no error in the script.

When I go to the URL "http://mywebsite.com/index.php?page=category&id=11" I want the URL to be rewritten as "http://mywebsite.com/heap-11" but it doesnt rewrite it, it simply shows the "http://mywebsite.com/index.php?page=category&id=11".

Now when I go to the URL http://mywebsite.com/heap-11 it show the page located at http://mywebsite.com/index.php?page=category&id=11,

Clearly, it is recognizing the pattern but not actually rewriting the URL.
Any hint on the possible error ?