apache中${var}和%{var}之间的区别是什么?

apache中${var}和%{var}之间的区别是什么?,apache,Apache,从文档中,%{VAR}在表达式中,${VAR}在配置中 但是它们之间的区别是什么实际上,我看到一些配置文件在配置中也使用了%{VAR}。这取决于上下文: 在常规配置中,${VAR}可以是Apache进程继承的环境变量,也可以是自Apache 2.4以来由指令定义的环境变量 但是,在Rewrite*指令的值中: ${MapName:LookupKey}(注意:用于将变量区分为重写映射):用于动态地将值映射到另一个过孔(如小写的子字符串) %{VAR}指定一个预定义变量(请参见下的列表),该变量仅

从文档中,
%{VAR}
在表达式中,
${VAR}
在配置中


但是它们之间的区别是什么实际上,我看到一些配置文件在配置中也使用了
%{VAR}

这取决于上下文:

在常规配置中,
${VAR}
可以是Apache进程继承的环境变量,也可以是自Apache 2.4以来由指令定义的环境变量

但是,在
Rewrite*
指令的值中:

  • ${MapName:LookupKey}
    (注意
    用于将变量区分为重写映射):用于动态地将值映射到另一个过孔(如小写的子字符串)
  • %{VAR}
    指定一个预定义变量(请参见下的列表),该变量仅用于mod_rewrite
编辑:我应该首先在Apache文档中搜索:

可以在配置文件行中使用语法${VAR}使用[new from 2.4]或shell环境变量定义的变量值。如果“VAR”是有效变量的名称,则该变量的值将被替换到配置文件行中的该点中,并且处理将继续,就好像该文本直接在配置文件中找到一样。使用Define定义的变量优先于shell环境变量。如果未找到“VAR”变量,则字符${VAR}保持不变,并记录警告。变量名不能包含冒号“:”字符,以避免与RewriteMap的语法冲突

只有在服务器启动之前定义的shell环境变量才能在扩展中使用


()

你是说修改吗?