Ale*_*x B 6 environment-variables apache-2.2
我正在尝试使用 SetEnvIf(Apache2,通过 .htaccess 文件)来存储环境变量,其中分配给变量的值需要包含空格。例如,尝试将环境变量“AUTH_KEY”设置为具有值“a b”:
SetEnvIf Request_URI "^/example" AUTH_KEY="a\ b"
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我都无法转义值中的空格 - 空格充当要创建的 env vars 之间的分隔符(在上面的 AUTH_KEY 是用值 '"a\' 和第二个 env var 创建的创建名为 'b"')。我也尝试过单引号但没有运气。
如何转义空格字符?
最后我自己想通了……
SetEnvIf Request_URI "^/example" "AUTH_KEY=a b"
Run Code Online (Sandbox Code Playgroud)
......这看起来很奇怪,但有效。它正确地将 AUTH_KEY 设置为值a b
希望这可以在将来节省其他人的时间。
详细信息:-我不是 C 程序员,但在 Google 上乱七八糟我发现http://www.bvbcode.com/code/s6148jvr-385031 上列出了 mod_setenvif.c
在第 405 行调用了一个函数(ap_getword_conf我在http://docstore.mik.ua/orelly/apache_mod/155.htm找到了详细信息),它似乎解析字符串,由空格分隔(但可以选择封装在引号中并接受转义字符的使用)。
我注意到这发生在上述函数返回的子字符串被 '=' 字符分割之前(第 411 行,由函数 ap_getword)。因此,在key=value货币对周围引用,而不仅仅是价值。
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |