Rewrites are more complex and flexible thus it is always hard to explain in detail. Rewrite is a feature allowing the admin to define certain rules that let him change the actual URL used or simply redirect to another URL.
There are two modes the admin can use:
Non RegEx (simple string)
RegEx (regex replace)
Let's start with the classic. Non regex is for backward compatibility and for somebody also simple as it does not require any regex knowledge. Non regex does always perform HTTP redirect. Meaning the user will see the redirect in his browser.
Support for advanced functionality has been added: non port 80, protocol redirects, wildcard string replace.
There are several types of usage here: