我正在尝试使用SetEnvIf(Apache2,通过.htaccess文件)来存储一个环境variables,其中要分配给variables的值需要包含空格。 例如,试图设置环境variables“AUTH_KEY”的值为“ab”:
SetEnvIf Request_URI "^/example" AUTH_KEY="a\ b"
无论我做什么,我都无法逃离价值空间 – 空间作为要创build的env vars之间的分隔符(在上面的AUTH_KEY中创build了值“a”和第二个env var被创build为“b”“)。 我也试过单引号也没有运气。
我如何逃避太空angular色?
最后我想到了自己…
SetEnvIf Request_URI "^/example" "AUTH_KEY=ab"
…看起来很奇怪,但是很有效。 它正确地将AUTH_KEY设置为值ab
希望这会在未来挽救别人的时间。
细节: –我不是一个C程序员,但在谷歌周围我发现了mod_setenvif.c列在http://www.bvbcode.com/code/s6148jvr-385031
一个函数在405行( ap_getword_conf ,我发现在http://docstore.mik.ua/orelly/apache_mod/155.htm详细)似乎分析string,由空格分隔(但可选地封装在引号和接受转义字符的使用)。
我注意到这发生在由上述函数返回的子string被“=”字符(第411行,由函数ap_getword)分割之前。 因此引用了key=value对,而不仅仅是值。
尝试改用SetEnvIf Request_URI "^/example" AUTH_KEY="a\sb" 。 这里代表的是空间。