Как вы используете SetEnv для чтения переменных в Apache?
Я хочу установить переменную env, которая имеет информацию DOC_ROOT, но ничего
SetEnv PROJECT_BASE %{ENV:DOC_ROOT}
SetEnv LAYOUT_HOME %{ENV:PROJECT_BASE}"/html/app/wordpress/"
а затем сможете получить доступ к LAYOUT_HOME в php
Как я могу это сделать? Выше не работает для меня...
Проблема в том, что базовый путь отличается в разных средах =/
2 ответа
SetEnv - это директива для mod_env, а mod_env не поддерживает%{ENV:var} - это делает только mod_rewrite. Не забывайте, что apache является модульным, и модули определяют свои собственные директивы. Вы можете сделать это с помощью mod_rewrite следующим образом:
RewriteRule .* - [E=PROJECT_BASE:%{ENV:DOC_ROOT}]
... etc
Я должен спросить, что вы действительно пытаетесь сделать? Должен быть лучший способ. Я не могу придумать причину для определения вашей переменной LAYOUT_HOME в apache вместо php.
Использование getenv
Док здесь.
Он получит любую переменную среды, просто используйте ее, чтобы получить ту, которую вы установили на Apache.