Создайте переменную Apache SetEnv со значением вложенного требования

#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": ")(.*?)(?:") . Demo

4.Лучшим регулярным выражением было бы (?:"claim1" *: *")([^"] ) Demo . Это должно обрабатывать пробелы.

5. Кажется, что Apache отказывается от регулярного выражения (даже если оно правильное согласно ссылке ниже). У меня следующее сообщение об ошибке «не удалось скомпилировать регулярное выражение SetEnvIf»