分类分类
关注+2011-01-07作者:清晨
4.9RewriteMap指令
说明 | 为一个映射函数值定义一个键 |
语法 | RewriteMap MapName MapType:MapSource |
使用环境 | server config, virtual host, directory, .htaccess |
RewriteMap指令被用来定义一个键到值的查找功能。当你需要映射大量的值时,它会很有用的,而且它的速度远远快过用规则匹配来做到它。映射功能的性能受映射文件的大小影响微乎其微。有三种类型的映射:
• txt:用一个文本文件映射
• rnd:从多个可选项中产生随机值
• int:内部函数
MapName是这个映射功能的名字,在RewriteRule命令中被用来指定这个映射。请确保每个映射用唯一的名称定义。你可以使用以下语法在RewriteRule指令的Substitution参数中调用映射功能
${ MapName : LookupKey | DefaultValue }
如果这个结构是在Substitution中出现,ISAPI_Rewrite将在映射中查找这个键,万一找到了一个,就用它的值替换这个结构。如果什么值也没有被找到,将用可选的DefaultValue。如果没有指定DefaultValue,它将用一个空串替换。
下面的标志也是支持的:
‘nocase|NC’
这个标志使该查找键大小写不敏感。
下面是一个大小写不敏感映射文件指令的示例
RewriteMap examplemap txt:C:/path/to/file/map.txt [NC]
到MapSource文件的路径,既可以是绝对地址也可以是相对地址。相对地址将被从当前配置的文件夹开始推算,换言之,就是从这个定义映射的配置文件的路径开始推算。
然后你可以在RewriteRule中如下使用这个映射:
RewriteRule ^/ex/(.*) ${examplemap:$1}
下列MapType和MapSource的组合是可用的:
txt:纯文本映射,它的source是到一个可用的文本文档的windows文件系统路径。文本文档必须是如下格式的:
#This is a commentkey1 value1 #Another commentkey2 value2keyN valueN
rnd:随机查找多个值。Source是一个文本文档的路径,文本文档必须是以下格式:
#This is a commentkey1 value1|value2|value3key2 value4|value5|value6|valueN
int: 调用内部函数。 Source必须是下列预定义的内部函数之一:
• toupper: 转换关键词为大写形式。
• tolower:转换关键词为小写形式。
• escape:把特定字符编码为十六进制。
• unescape:把十六进制值编译为特定字符。
4.10RewriteLog指令
说明 | 设置ISAPI_Rewrite日志文件的名称 |
语法 | RewriteLog file-path |
默认值 | RewriteLog installdir\rewrite.log |
使用环境 | server config |
这个指令用来设定记录ISAPI_Rewrite动作的日志文件的文件名。示例:
Rewritelog "C:\local\path\rewrite.log"
4.11RewriteLogLevel指令
说明 | 设置日志级别 |
语法 | RewriteLogLevel Level |
默认值 | RewriteLogLevel 0 |
使用环境 | server config |
这个指令设置日志的输出长度。默认值0表示不记日志,而最大的级别9则表示所有的动作都要记录。
使用使用较高的级别值可能会降低ISAPI_Rewrite的操作速度。我们建议你当你完成规则调试之后,通过设置日志级别为零来禁用日志。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论