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 特性来达到目的,以避免无谓的复杂性。