#apache #setenv #setenvif
#apache #setenv #setenvif
Вопрос:
У меня есть переменная среды, вызываемая ПЕРВОЙ и содержащая JSON :
{ «claim1»: «val1», «claim2»: «val2»}
Я хотел бы установить новую переменную среды, которая должна содержать только val1.
Я попытался установить эту новую переменную (ВТОРУЮ) с помощью SetEnvIf, но, к сожалению, это не работает:
SetEnvIf FIRST ("claim1":)(.*?)"(.*?)" SECOND=$3
Регулярное выражение правильное, вы можете проверить это здесь: демо
ПЕРВАЯ переменная не является атрибутом запроса, даже если кажется, что это требуется в соответствии с документацией модуля Apache mod_setenvif..
Есть идеи, как я мог бы этого добиться?
Спасибо!
Комментарии:
1. попробуйте изменить на
SECOND=$1
2. Я пробовал это, но у меня все еще не работает. ВТОРАЯ переменная пуста.
3. в регулярном выражении отсутствует пробел после
:
. попробуйте(?:"claim1": ")(.*?)(?:")
. Demo4.Лучшим регулярным выражением было бы
(?:"claim1" *: *")([^"] )
Demo . Это должно обрабатывать пробелы.5. Кажется, что Apache отказывается от регулярного выражения (даже если оно правильное согласно ссылке ниже). У меня следующее сообщение об ошибке «не удалось скомпилировать регулярное выражение SetEnvIf»