我已经阅读了Apache 2.4 Expr的文档,但无法使它在configuration文件中工作。 有人可以给我一个如何格式化expression式内的string的例子吗? 文档说下面应该工作。
# Function example in string context Header set foo-checksum "expr=%{md5:foo}"
但是,当我剪切和粘贴到我的configuration文件的代码,我得到以下错误:
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')}"
好的,一旦你有一个有效的variables(Apache 2.4.7),这将工作:
Header set myHeaderName "%{REQUEST_URI}e"
你只需要在string的末尾附加一个'e'。 现在设置你自己的variables(用于输出string)是错误的。 声明不起作用。 虽然有一个解决方法。 使用mod_rewrite来设置var。 这是一个例子。
RewriteEngine on RewriteRule .* - [E=INFO_REQUEST_URI:%{REQUEST_URI}] Header set X-Request-URI "%{INFO_REQUEST_URI}e"