Назад | Перейти на главную страницу

Правильный формат для вычисления строки Apache 2.4 в файле конфигурации

Я прочитал документацию по 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')}"

Хорошо, как только у вас есть допустимая переменная (Apache 2.4.7), это будет работать:

Header set myHeaderName "%{REQUEST_URI}e"

Вам просто нужно добавить букву «е» в конец строки. Теперь установка собственных переменных (для вывода в виде строки) не работает. Declare не работает. Однако есть обходной путь. Используйте mod_rewrite, чтобы установить переменную. Вот пример.

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