i ran into that problem as well.
if you change it to
Code:
RewriteRule ^(.*)-LD-([0-9]+)-P([0-9]+)\.html$ index.php
then the normal query string will be available to php. seems that when you force your own query string in the rewrite rule, it overwrites the query string the browser sent.
personally, thats what i did, and then i just get what i want and parse it out using php, using $_SERVER['REQUEST_URI']
you might be able to get fancy and add the normal query string back in like this though
Code:
RewriteRule ^(.*)-LD-([0-9]+)-P([0-9]+)\.html$ index.php?%{QUERY_STRING}&id=$2&cat=$1&page=$3 [L]
the reason i put %{QUERY_STRING} in before the other variables, and not at the end, is so if the user passes ?id=foo, your id wont get overwritten.
so now you need to remember you cant use id, cat, or page as variables anymore. if thats a problem, do what i did and just parse the REQUEST_URI using php instead of setting variables in the rewrite rule.
another option, is to pass those variables to php as enviornment variables, so they wont collide with your normal _GET variables, which you can do with htaccess. i forget the syntax though. then they will be available in the php $_ENV array
Bookmarks