"a rule-based rewriting engine to rewrite requested URLs on the fly."
Voodoo. A dark art. Black magic. All have been used to describe the power and complexity of mod_rewrite, and all are equally wrong. The rewrite engine is just another piece of software - it will function as you tell it to and nothing more.
URL rewriting is an invaluable tool for any webmaster - it allows you to intercept requests and rewrite them elsewhere. mod_rewrite is merely the Apache module that contains the rewrite engine - other servers will process URL rewriting differently.
Common uses include:
And pretty much any other URL manipulation you can think of. See the Examples menu for more.
mod_rewrite is not the solution to everything. For instance, if your site is already well indexed in search engines, you should not convert everything to pretty URLs. Not only do you need to setup your new pretty URLs but you will also need to setup 301 redirects to preserve the old inlinks.
There is a lot this module can do, but it cannot do everything. Remember, your server will need to consider your rewriterules every time a request is made - that is for every image, every file and every page loaded, every time. It follows then that this may not always be the best solution.
Additionally, mod_rewrite can only rewrite requests - you must still update your scripts and pages to output the URL in your new rewritten format.