Apache HTTP 服务器版本 2.4

Apache > HTTP 服务器 > 文档 > 版本 2.4

# Apache mod_rewrite

此翻译可能过期。要了解最近的更改，请阅读英文版。

`mod_rewrite` 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法。 这允许你以自己喜欢的任意方法映射任意 URL 到你的内部 URL 结构。

它支持无限的规则，以及为每个规则附加条件，从而提供了一个真正灵活且强大的 URL 操作机制。URL 操作可以依赖于各种测试，例如服务器变量，环境变量，HTTP 头，时戳，甚至外部数据库查询等，以便完成 URL 单元匹配。

这个模块在服务器上下文 (`httpd.conf`)，虚拟主机上下文 (`<VirtualHost>` 指令块)，目录上下文 (`.htaccess` 文件和 `<Directory>` 指令块) 对完整的 URL (包含目录信息部分和查询字符串部分) 操作。 重写结果可以导致新的规则处理，内部的后续处理，外部请求重定向，甚至透过内部代理， 这取决于你为规则附加的标志。

既然 mod_rewrite 这么强大，它当然是相当复杂。这篇文档作为参考手册的补充，试图减轻一些复杂性， 提供你可能使用 mod_rewrite 的常见场景的有充分注释的例子。 但是，我们也试图告诉你，在什么时候你不应当使用 mod_rewrite， 可以使用其它标准的 Apache 特性来达到目的，以避免无谓的复杂性。

- mod_rewrite 参考手册
- 正则表达式与 mod_rewrite 入门
- 使用 mod_rewrite 重定向和重新映射 URL
- 使用 mod_rewrite 控制访问
- 动态虚拟主机与 mod_rewrite
- 动态代理与 mod_rewrite
- 使用 RewriteMap
- 高级技术与诀窍
- 何时 不要使用 mod_rewrite
- RewriteRule 标志
- 技术细节

### 参见

- mod_rewrite 参考手册
- 从 URL 映射到文件系统
- mod_rewrite wiki
- 术语