Yep, modern search engines actually prefer to have the original query string, rather than a rewritten URL. When you rewrite the URL, you are basically "hiding" information, and in some cases making it impossible for the crawler to figure out what the available information means.
For example, if you have this URL:
- http://example.com/article.php?id=123
A search engine will be able to deduce the following:
- This is a PHP page; dynamically generated content. (This may affect caching or re-crawl rates, or any number of other things.)
- The current page is tagged with an "id" of "123". (Useful for obvious reasons.)
If you were to rewrite that into this:
- http://example.com/article/id/123/
You are basically:
- Giving the false impression that this is a static page (meaning; not modified by query string parameters).
- Hiding what the number "123" actually is. It would simply be considered a directory name; a sub-directory of the "id" directory, rather than a parameter linked to the "id" keyword.
It is best for the search engine (and thus your rating) if you just use the query string as it was meant to be used, rather than try to "trick" the search engine into thinking that a dynamic page is static. (Static pages rank no higher than dynamic once.)
However, you would be wise to limit the query parameters to two or three values, and try not to mix the order of the parameters to much. It's also best to use proper words, rather than single letters or illegible abbreviations. (Both search engines and users may be able to determine context based on keywords. Like, the parameter name "desc" would infer a description, where the letter "d" may not.)