说明 |
一个基于一定规则的实时重写URL请求的引擎 |
状态 |
扩展(E) |
模块名 |
rewrite_module |
源文件 |
mod_rewrite.c |
兼容性 |
仅在 Apache 1.3 及以后的版本中可用 |
概述此模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(
httpd.conf)和目录级的(
.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。
在Apache 1.3.20中,TestString和Substitution中的特殊字符可以用前导斜杠(\)来实现转义(即忽略其特殊含义而视之为普通字符)。 比如,Substitution可以用"\$
"来包含一个美元符号,以避免mod_rewrite把它视为反向引用。
此模块会跟踪两个额外的(非标准)CGI/SSI环境变量,SCRIPT_URL
和SCRIPT_URI
。他们包含了当前资源的逻辑网络视图,而标准CGI/SSI变量SCRIPT_NAME
和SCRIPT_FILENAME
包含的是物理系统视图。
注意:这些变量保持的是其最初被请求时的URI/URL,即在任何重写操作之前的URI/URL。其重要性在于他们是重写操作重写URL到物理路径名的原始依据。
示例
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
SCRIPT_FILENAME=/u/rse/.www/index.html
SCRIPT_URL=/u/rse/
SCRIPT_URI=http://en1.engelschall.com/u/rse/