Apache HTTP Server Version 2.1

Apache > HTTP Server > Documentation > Version 2.1

# Apache mod_rewrite

Available Languages: en

> ``The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail.''

> -- Brian Behlendorf
> Apache Group

> `` Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo.''

> -- Brian Moore
> bem@news.cmc.net

Welcome to mod_rewrite, the Swiss Army Knife of URL manipulation!

This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule to provide a really flexible and powerful URL manipulation mechanism. The URL manipulations can depend on various tests, for instance server variables, environment variables, HTTP headers, time stamps and even external database lookups in various formats can be used to achieve granular URL matching.

This module operates on the full URLs (including the path-info part) both in per-server context (`httpd.conf`) and per-directory context (`.htaccess`) and can even generate query-string parts on result. The rewritten result can lead to internal sub-processing, external request redirection or even to an internal proxy throughput.

But all this functionality and flexibility has its drawback: complexity. So don't expect to understand this entire module in just one day.

### See also

- mod_rewrite reference documentation
- Introduction
- Technical details
- Practical solutions to common problems
- Practical solutions to advanced problems

## Documentation

- mod_rewrite reference documentation
- Introduction
- Technical details
- Practical solutions to common problems
- Practical solutions to advanced problems
- Glossary

Available Languages: en