2016-01-21 71 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

相關問題