mod_rewrite
提供了一种基于正则表达式规则动态修改传入URL请求的方法。这使您可以按照自己喜欢的任何方式将任意URL映射到内部URL结构上。
它为每个规则支持无限数量的规则和无限数量的附加规则条件,以提供真正灵活而强大的URL操作机制。URL操作可能取决于各种测试:服务器变量,环境变量,HTTP标头,时间戳,外部数据库查找以及各种其他外部程序或处理程序可用于实现精细的URL匹配。
重写规则可以对完整的URL进行操作,包括路径信息和查询字符串部分,并且可以在每个服务器上下文(httpd.conf
),每个虚拟主机上下文(<VirtualHost>
块)或每个目录上下文(.htaccess
文件和<Directory>
块)中使用。重写的结果可能导致进一步的规则,内部子处理,外部请求重定向或代理传递,具体取决于您附加到规则的标志。
由于mod_rewrite非常强大,因此确实很复杂。本文档是对参考文档的补充,并试图缓解这种复杂性,并提供了带批注的示例,这些示例可以通过mod_rewrite处理。但是,我们还会尝试向您展示何时不应该使用mod_rewrite,而应使用其他标准Apache功能,从而避免这种不必要的复杂性。