What is mod_rewrite?
In the context of Apache servers, mod_rewrite is a module that rewrites requested URLs through a rule-based rewriting engine. This module is an excellent way to manipulate URLs using an unlimited amount of rules and rule conditions.
![](https://web-3336.stage.dreamhost.com/glossary/wp-content/uploads/2022/10/web-hosting-glossary-featured.jpg)
More About mod_rewrite
mod_rewrite is a fantastic module to use for URL rewriting. However, it’s more suited to Apache experts and intermediate users than beginners.
For some simpler, less complex URL manipulation tasks, the mod_alias module is probably a better solution. It allows for control and manipulation of URLs as requests arrive at the server rather than on the fly.
mod_rewrite uses the Perl Compatible Regular Expression vocabulary for all its expressions and references.
As with other modules, mod_rewrite has several directives to perform various actions. Two of the most common directives are RewriteBase, which sets the base URL for the rewrite, and RewriteCond, which defines conditions for the rewrite.
One of the fundamental features of mod_rewrite is its detailed logging of actions. You can use the LogLevel directive to set the level of detail provided in the logs. The debug level means that nothing is logged at all, while levels trace1 to trace8 incrementally bring up the number of logged actions.