Как вы используете 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.

Другие вопросы по тегам