配置文件中 Apache 2.4 字符串中 Eval 的正确格式

配置文件中 Apache 2.4 字符串中 Eval 的正确格式

我已阅读有关 Apache 2.4 Expr 的文档,但无法在配置文件中使其工作。有人能给我一个如何格式化字符串内表达式的示例吗?文档说下面的方法应该有效。

# Function example in string context
Header set foo-checksum "expr=%{md5:foo}"

但是,当我将该代码剪切并粘贴到我的配置文件中时,出现以下错误:

Unrecognized header format %

我也尝试过这些:

Header set exprResult "expr=tolower('MAKEMELOWERCASE')"
Header set exprResult "expr=%{tolower('MAKEMELOWERCASE')}"
Header set exprResult "(tolower('MAKEMELOWERCASE'))"
Header set exprResult "${tolower('MAKEMELOWERCASE')}"

答案1

好的,一旦你有了一个有效的变量(Apache 2.4.7),这将起作用:

Header set myHeaderName "%{REQUEST_URI}e"

您只需在字符串末尾附加一个“e”。现在设置您自己的变量(用于字符串输出)是有问题的。Declare 不起作用。不过有一个解决方法。使用 mod_rewrite 来设置变量。这是一个例子。

RewriteEngine on
RewriteRule .* - [E=INFO_REQUEST_URI:%{REQUEST_URI}]
Header set X-Request-URI "%{INFO_REQUEST_URI}e"

相关内容