在doc中,%{VAR}在表达式中,$ {VAR}处于配置状态。
但实际上它们之间有什么区别,我看到一些配置文件也在配置中使用%{VAR}。
答案 0 :(得分:0)
取决于具体情况:
在常规配置中,${VAR}
可以是Apache进程继承的环境变量,或者自Apache 2.4以来,由Define
指令定义。
但是,在Rewrite*
指令的值中:
${MapName:LookupKey}
(请注意将:
区分为变量与RewriteMap):用于通过RewriteMap(例如小写子字符串)将值动态映射到其他值%{VAR}
指定用于且仅由mod_rewrite使用的预定义变量(请参阅RewriteCond's documentation下的列表)。编辑:我应该先在Apache的文档中搜索:
可以使用语法$ {VAR}在配置文件行中使用使用[来自2.4的新定义]或shell环境变量定义的变量值。如果“VAR”是有效变量的名称,则该变量的值将替换为配置文件行中的该位置,并继续处理,就好像该文本直接在配置文件中找到一样。使用Define定义的变量优先于shell环境变量。如果未找到“VAR”变量,则字符$ {VAR}保持不变,并记录警告。变量名称可能不包含冒号“:”字符,以避免与RewriteMap的语法冲突。
只有在启动服务器之前定义的shell环境变量才能用于扩展。
(source)