Я пытаюсь установить переменные среды Apache (для использования в PHP) с флагом [E=VAR:VAL] в правилах RewriteRule в файле .htaccess.
Я уже обнаружил, что переменные доступны в PHP как серверные переменные $_SERVER, а не $_ENV (что делает определенный смысл). Однако моя проблема заключается в некоторых правилах, флаг [E=VAR:VAL] работает так, как ожидалось, и я получаю переменную $_SERVER['VAR'], но для других правил я заканчиваю переменной $_SERVER['REDIRECT_VAR'] или $_SERVER['REDIRECT_REDIRECT_VAR'] и т.д.
а. Что вызывает переменную окружения, установленную в Apache с использованием флага [E=VAR:VAL], чтобы переименовать, добавив "REDIRECT_" к имени переменной?
В. Что я могу сделать, чтобы убедиться, что в итоге у меня есть переменная среды с неизменным именем, поэтому я могу получить доступ к ней в PHP как $_SERVER['VAR'], не прибегая к проверке вариантов имени переменной, имеющего один из экземпляров "REDIRECT_", добавлено к нему?
найдено частичное решение. Добавление следующего к началу правил перезаписи воссоздает исходный ENV: VAR при каждом переадресации (а также оставляя там версии REDIRECT_VAR), если они необходимы:
RewriteCond %{ENV:REDIRECT_VAR} !^$
RewriteRule .* - [E=VAR:%{ENV:REDIRECT_VAR}]