2016-01-21 73 views
0

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

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

+0

你说的是mod_rewrite的? –

回答

0

这取决于上下文:

在常规的结构中,${VAR}可以是由或者,由于阿帕奇2.4,由Define指令定义Apache进程继承的环境变量。

但是,Rewrite*指令值:

  • ${MapName:LookupKey}(注意:区分到RewriteMap指令的变量):旨在通过RewriteMap到dynacially映射的值的其他(如下情况下的子)
  • %{VAR}指定用于且仅由mod_rewrite使用的预定义变量(请参阅RewriteCond's documentation下的列表)。

编辑:我应该首先搜索Apache的文档中:

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

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

source

相关问题